2016-06-10 16 views
-1

Ich versuche, eine Website zu kratzen und die Zahl in dem ‚Daten-itemId‘ Feld unter (1234567) greifen:Wie analysiere ich eine Zahl aus einer Div-Zeichenfolge?

<div class="submission" data-itemId="1234567" data-membershipId="00000" data-page="0"> 
    <div class="image Image"> 
    <img data-imageurl="test.png" src="test.png" class="img_lightbox" alt="Test" width="455" /> 
    <p class="lightboxExtra cf"> 
     <span class="title">Test-</span> 
     <span class="description"></span> 
     <a href="/test?itemId=1234567">PERMALINK <i class="fa fa-link"></i></a> 
    </p> 
    </div> 
    <div class="details"> 
    <a href="/Test?itemId=1234567">Test-</a> 
    </div> 
    <div class="meta cf"> 
    <div class="info"> 
     <p>Submitted by: <a class="submittedBy" data-membershipId="00000" href="/test?id=00000">TestUser</a> 
     </p> 
     <p>Source: <a href="test.png" target="_blank" class="externalLink exempt">media.tumblr.com</a> 
     </p> 
     <p class="actions"> 
     <a href="" class="trigger_report" data-itemId="1234567" data-membershipId="00000">Report</a> 
     <a href="/test/0000000" class="btn_modify exempt">Modify</a> 
     </p> 
    </div> 
    <div class="light " data-itemId="1234567"> 
     <span class="lightNumber">469</span> 
    </div> 
    </div> 
</div> 

Jetzt haben Sie diesen Code ich, dass ich eine URL finden hilft, die auch enthält die gleiche Nummer:

from bs4 import BeautifulSoup 
import requests 

URL = "https://www.test.com" 
URLScraped = requests.get(URL) 
soup = BeautifulSoup(URLScraped.text, 'lxml') 

for Submission in soup.find_all('div', class_='submission'): 
    for ID in Submission.find_all('a'): 
     print ID.get('href') 

Dies gibt so etwas wie dieses:

/Test itemId = 1234567

012.351.

/Test? ItemId = 1234567

/Test? Id = 0000000

http://test.com/test.png

Ich weiß, es tut dies, weil der Code verwende ich einfach für etwas sucht, das so aussieht eine URL innerhalb des div 'submission'. Allerdings würde ich gerne die Zahl (1234567 in diesem Fall) aus "data-itemId" nehmen können, wie in der ersten Zeile des HTML-Codes gesehen. Denken Sie daran, es gibt mehrere Submission Divs, also versuche ich alle Zahlen von 'data-membershipId' in ein Array zu bekommen.

Irgendwelche Vorschläge?

Antwort

0

Man könnte es auf diese Weise tun:

for Submission in soup.find_all('div', 'submission'): 
    print Submission['data-itemid'] 

Und Sie verwirrt mich mit Ihrer letzten Zeile:

Ich versuche, alle Zahlen erhalten von ‚Daten-membershipId‘ in ein Array

Also wollen Sie 'Data-MembershipId' in einem Array? Ich habe gefragt, weil du überall sonst 'data-itemId' erwähnt hast.

+0

Definierte Daten-Itemid. Dein Code funktioniert! Vielen Dank! – Schuby

Verwandte Themen