python中的beautifulsoup和xpath有什么异同点?

2017-07-21 at 02:20 下午 kk

python中的beautifulsoup和xpath有什么异同点?


python中的beautifulsoup和xpath都能解析html,那么问题来了
1.他们有什么异同点?
2.他们各自擅长的地方是什么?

BeautifulSoup是一个库,而XPath是一种技术,python中最常用的XPath库是lxml,因此,这里就拿lxml来和BeautifulSoup做比较吧

1 性能 lxml >> BeautifulSoup

BeautifulSoup和lxml的原理不一样,BeautifulSoup是基于DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多。而lxml只会局部遍历,另外lxml是用c写的,而BeautifulSoup是用python写的,因此性能方面自然会差很多。

2 易用性 BeautifulSoup >> lxml

BeautifulSoup用起来比较简单,API非常人性化,支持css选择器。lxml的XPath写起来麻烦,开发效率不如BeautifulSoup。

  1. title = soup.select('.content div.title h3')

同样的代码用Xpath写起来会很麻烦

  1. title = tree.xpath("//*[@class='content']/div[@class='content']/h3")

3 总结

需求比较确定,要求性能的场合用lxml,快速开发用BeautifulSoup

ps: BeautifulSoup4可以使用lxml作为parser了

------------------------------------------------------------------------------------------
作者:
宽宽@网站策划运营
本站所有文章均为宽宽原创。
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

Leave a Reply