Wie kann ich Informationen aus einem <a href> - tag im <div> - tags mit BeautifulSoup und Python?

alle. Ich habe eine kurze Frage über BeautifulSoup Python-Skript. Ich habe mehrere bits von HTML, die wie folgt Aussehen (die einzigen Unterschiede sind die links-und Produktnamen), und ich versuche, den link von der "href" - Attribut.

<div id="productListing1" xmlns:dew="urn:Microsoft.Search.Response.Document">
<span id="rank" style="display:none;">94.36</span>
<div class="productPhoto">
    <img src="/assets/images/ocpimages/87684/00131cl.gif" height="82" width="82" />
</div>
<div class="productName">
    <a class="on" href="/Products/ProductInfoDisplay.aspx?SiteId=1&amp;Product=8768400131">CAPRI SUN - JUICE DRINK - COOLERS VARIETY PACK 6 OZ</a>
</div>
<div class="size">40 CT</div>

Im Moment habe ich dieses Python-code:

productLinks = soup.findAll('a', attrs={'class' : 'on'})
for link in productLinks:
    print link['href']

Diese funktioniert (für jeden link auf der Seite bekomme ich so etwas wie /Products/ProductInfoDisplay.aspx?SiteId=1&amp;Product=8768400131); allerdings habe ich versucht herauszufinden, ob es einen Weg gibt, um den link in das "href" - Attribut ein, ohne zu suchen, die explizit für " class="on"'. Ich denke, meine erste Frage sollte sein, ob oder nicht, dies ist der beste Weg, um diese Informationen zu finden (class="on" erscheint zu allgemein und wahrscheinlich zu brechen in der Zukunft, obwohl meine CSS-und HTML-Kenntnisse sind nicht so gut). Ich habe versucht, die zahlreichen Kombinationen von find, findAll, findAllnext, etc. Methoden aber ich kann nicht ganz machen es zu arbeiten. Dies ist vor allem, was ich hatte (ich umgestaltet und verändert es zahlreiche Male):

productLinks = soup.find('div', attrs={'class' : 'productName'}).find('a', href=True)

Wenn das nicht ein guter Weg, um dies zu tun, wie kann ich auf die <a> tag aus der <div class="productName"> tag? Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Danke.

InformationsquelleAutor | 2011-12-18

Schreibe einen Kommentar