ejemplos - un análisis de HTML parecido a jquery en Python?
jquery html append (3)
Considera PyQuery:
http://packages.python.org/pyquery/
>>> from pyquery import PyQuery as pq
>>> from lxml import etree
>>> import urllib
>>> d = pq("<html></html>")
>>> d = pq(etree.fromstring("<html></html>"))
>>> d = pq(url=''http://google.com/'')
>>> d = pq(url=''http://google.com/'', opener=lambda url: urllib.urlopen(url).read())
>>> d = pq(filename=path_to_html_file)
>>> d("#hello")
[<p#hello.hello>]
>>> p = d("#hello")
>>> p.html()
''Hello world !''
>>> p.html("you know <a href=''http://python.org/''>Python</a> rocks")
[<p#hello.hello>]
>>> p.html()
u''you know <a href="http://python.org/">Python</a> rocks''
>>> p.text()
''you know Python rocks''
¿Hay alguna biblioteca de Python que me permita analizar un documento HTML similar a lo que hace jQuery?
es decir, me gustaría poder usar la sintaxis del selector de CSS para tomar un conjunto arbitrario de nodos del documento, leer su contenido / atributos, etc.
La única lib de análisis HTML de Python que he usado anteriormente fue BeautifulSoup, y aunque está bien, sigo pensando que sería más rápido hacer mi análisis sintáctico si tuviera la sintaxis jQuery disponible. :RE
La biblioteca lxml admite selectores de CSS .
Si es fluido con BeautifulSoup , puede agregar soupselect a sus libs.
Soupselect es una extensión de selector CSS para BeautifulSoup.
Uso:
>>> from BeautifulSoup import BeautifulSoup as Soup
>>> from soupselect import select
>>> import urllib
>>> soup = Soup(urllib.urlopen(''http://slashdot.org/''))
>>> select(soup, ''div.title h3'')
[<h3><span><a href=''//science.slashdot.org/''>Science</a>:</span></h3>,
<h3><a href=''//slashdot.org/articles/07/02/28/0120220.shtml''>Star Trek</h3>,
..]