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



湖北快3号码遗漏 大智慧股票软件 福建快3基本走图 内蒙古11选5前三预测号 天津快乐10分开奖结果 福彩幸运农场人工计划 20万理财一年的收益4万阿胶 每日股票推荐群 快乐12一定牛开奖结果 股票配资平台查询网 海南体彩飞鱼指标