Tengo HTML que contiene entradas como esta:biblioteca de Python para hacer una extracción de texto similar a jQuery?
<div class="entry">
<h3 class="foo">
<a href="http://www.example.com/blog-entry-slug"
rel="bookmark">Blog Entry</a>
</h3>
...
</div>
y me gustaría extraer el texto "entrada de blog" (y un número de otros atributos, así que estoy en busca de una respuesta genérica) .
En jQuery, lo haría
$('.entry a[rel=bookmark]').text()
más cerca que he podido conseguir en Python es:
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 no comprende la sintaxis completa del selector CSS3, como lo hace jQuery. ¿Hay tal bestia en Python?
Eso no funcionó para mí por alguna razón (fromstring parece querer html * lol * válido), pero uno de los enlaces que me diste me llevó a pyquery. La motivación para pyquery fue "Hey vamos a hacer jquery en python", y de mis pruebas preliminares he podido confiar en mi conocimiento de jQuery en lugar de leer los documentos (!) – thebjorn
Use "de lxml.html import fromstring" para html con formato incorrecto – Saurav