2017-06-13 3 views
0

Ich habe die folgende Liste der Ergebnisse:wählen Sie den Punkt mit beatifulsoup

<div id="resultlist" class="result-list "> 
    <article itemscope="" itemtype="http://schema.org/Residence" class="search-result-entry "> 
    <article itemscope="" itemtype="http://schema.org/Residence" class="search-result-entry "> 
    <article class="search-result-entry" id="wh_adition_FakeAd1"> 
    <article itemscope="" itemtype="http://schema.org/Residence" class="search-result-entry "> 
... 

Mit beautifulsoup Ich versuche, alle Einträge mit der Klasse „Suchergebnis-Eintrag“ zu wählen, und die itemtype = "http: // schema.org/Residence ".

response = requests.get(url) 

#cancel parsing if page doesnt exists 
if response.status_code is not 200: 
    return 

soup = bs4.BeautifulSoup(response.text, "lxml") 
#print(soup.select("resultlist") 

#select all listings from lise, execlude adds 
results = soup.select('.search-result-entry') 
print(results) 

aber im Moment bin ich die Auswahl diejenigen, auch mit dem id="wh_adition_FakeAd1", die mir einen Index Fehler später einige Zeilen gibt. Ich versuchte dies, ohne Ergebnis:

results = soup.select('.search-result-entry meta[itemtype=http://schema.org/Residence]') 

Jede Idee, wie ich nur die Einträge auszuwählen verwalten können, die ich brauche?

Vielen Dank im Voraus.

Antwort

1

Sie können dies versuchen. Finde alle Artikel-Tags, die deinen gewünschten Item-Typ haben. Dies wird nur diejenigen mit diesem Attribut drucken.

for line in soup.findAll("article", {"itemtype" : "http://schema.org/Residence"}): 
    print line 

Und Sie können das gleiche mit denen tun, die haben und ID

for line in soup.findAll("article", {"id" : "wh_adition_FakeAd1"}): 
    print line 

Hoffnung, das hilft.

+0

Danke, das hat geklappt! – fahrradlaus

+0

Kein Problem. Ich bin froh, dass es hilfreich war. –

Verwandte Themen