我正在开发一个涉及解析HTML的项目.
搜索后,我发现了两个可能的选项:BeautifulSoup和lxml.html
有什么理由比较喜欢一个吗?我已经在一段时间后使用了lxml for XML,我觉得我会更舒服,但是BeautifulSoup似乎很常见.
我知道我应该使用适合我的那个,但我正在寻找两者的个人经历.
我有html包含这样的条目:
<div class="entry">
<h3 class="foo">
<a href="http://www.example.com/blog-entry-slug"
rel="bookmark">Blog Entry</a>
</h3>
...
</div>
Run Code Online (Sandbox Code Playgroud)
我想提取文本"博客条目"(和其他一些属性,所以我正在寻找一个通用的答案).
在jQuery中,我会这样做
$('.entry a[rel=bookmark]').text()
Run Code Online (Sandbox Code Playgroud)
我能用Python获得的最接近的是:
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()
Run Code Online (Sandbox Code Playgroud)
来自http://code.google.com/p/soupselect/的 soupselect .
Soupselect不理解完整的CSS3选择器语法,但是jQuery也是如此.Python中有这样的野兽吗?
有人可以帮我解析一个html文件来获取python中文件中所有图像的链接吗?
最好不要使用第三方模块......
谢谢!
在lxml的文档,它说:
lxml可以通过lxml.html.soupparser模块与BeautifulSoup的解析功能进行交互.它提供了三个主要功能:fromstring()和parse()使用BeautifulSoup将字符串或文件解析为lxml.html文档,并使用convert_tree()将现有的BeautifulSoup树转换为顶级元素列表.
同时,BS'也可以lxml用作解析器.[参考文献]
Beautiful Soup支持Python标准库中包含的HTML解析器,但它也支持许多第三方Python解析器.一个是lxml解析器.
BS还建议使用lxml的解析器速度.
所以,如果有什么lxml用途BS,用于分析时BS的解析器是lxml 相反?
我一直在理解他们的关系.救命.