J'ai html qui contient des entrées comme ceci:Bibliothèque Python pour l'extraction de texte de type jQuery?
<div class="entry">
<h3 class="foo">
<a href="http://www.example.com/blog-entry-slug"
rel="bookmark">Blog Entry</a>
</h3>
...
</div>
et je voudrais extraire le texte « Blog Entry » (et un certain nombre d'autres attributs, donc je suis à la recherche d'une réponse générique) .
En jQuery, je ne
$('.entry a[rel=bookmark]').text()
le plus proche, je suis en mesure d'obtenir en Python est:
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()
soupselect de http://code.google.com/p/soupselect/.
Soupselect ne comprend pas la syntaxe complète du sélecteur CSS3, tout comme jQuery. Y a-t-il une telle bête en Python?
Cela n'a pas fonctionné pour moi pour une raison quelconque (fromstring semble vouloir valide html * lol *), mais l'un des liens que vous avez donné m'a conduit vers pyquery. La motivation pour pyquery était "Hey, faisons jquery en python", et à partir de mes tests préliminaires, j'ai pu compter sur ma connaissance de jQuery au lieu de lire les docs (!) – thebjorn
Utilisez "from lxml.html import fromstring" pour malformé html – Saurav