Ich habe eine HTML-Datei mit Einträgen wie diesem:
<div class="entry">
<h3 class="foo">
<a href="http://www.example.com/blog-entry-slug"
rel="bookmark">Blog Entry</a>
</h3>
...
</div>
und ich möchte den Text "Blog-Eintrag" extrahieren (und eine Reihe anderer Attribute, daher suche ich nach einer allgemeinen Antwort).
In jQuery, würde ich tun
$('.entry a[rel=bookmark]').text()
Das, was ich in Python am ehesten finden konnte, ist:
from BeautifulSoup import BeautifulSoup
import soupselect as soup
rawsoup = BeautifulSoup(open('fname.html').read())
for entry in rawsoup.findAll('div', 'entry'):
print soup.select(entry, 'a[rel=bookmark]')[0].string.strip()
Suppe auswählen aus http://code.google.com/p/soupselect/ .
Soupselect versteht nicht die volle CSS3-Selektor-Syntax, wie es jQuery jedoch tut. Gibt es so ein Biest in Python?