首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中类似jquery的HTML解析?

Python中类似jquery的HTML解析?
EN

Stack Overflow用户
提问于 2010-06-16 15:12:13
回答 4查看 32K关注 0票数 68

有没有什么Python库可以让我像jQuery那样解析超文本标记语言文档?

也就是说,我希望能够使用CSS选择器语法从文档中抓取任意一组节点,读取它们的内容/属性等。

我以前唯一使用过的Python HTML解析库是BeautifulSoup,,尽管它很好,但我一直在想,如果我有可用的jQuery语法,解析速度会更快。:D

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-16 15:32:01

如果您精通BeautifulSoup,您可以将soupselect添加到您的库中。

Soupselect是BeautifulSoup的CSS选择器扩展。

用法:

代码语言:javascript
复制
from bs4 import BeautifulSoup as Soup
from soupselect import select
import urllib
soup = Soup(urllib.urlopen('http://slashdot.org/'))
select(soup, 'div.title h3')
代码语言:javascript
复制
    [<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>,
    ..]
票数 64
EN

Stack Overflow用户

发布于 2011-05-11 07:19:21

以PyQuery为例:

http://packages.python.org/pyquery/

代码语言:javascript
复制
>>> 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'
票数 49
EN

Stack Overflow用户

发布于 2010-06-16 15:14:41

lxml库支持CSS selectors

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3051295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档