5种流行的Web抓取Python库,你用过哪种?
发布于:2020-07-23 被浏览:4293次
“我们有足够的数据”这句话在数据科学领域并不存在。我很少听到人们拒绝为他们的机器学习或深度学习项目收集更多的数据,他们总是觉得他们没有足够的数据。
为了缓解这种“数据焦虑”,分析师或数据科学家开发了一种必要的技能:网站捕捉。
使用Python执行网站爬行非常方便。有大量的图书馆可供使用,但令人头痛的是这里。如何决定哪个库适合您的特定项目?哪个Python库最灵活?
在没有给出直接答案的情况下,下面列出了我认为更常见的五个Python库,并将通过评估它们的优缺点来回答这些问题。
1.要求
请求是一个Python库,用来发出各种类型的HTTP请求,比如GET、POST等等。由于它的简单性,它被称为人类的超文本传输协议。
我想说的是,这是网络爬行最基本也是最基本的库。但是,请求库不会解析检索到的超文本标记语言数据。如果您想这样做,您需要将它与诸如lxml和美丽汤(将在本文中进一步介绍)这样的库结合使用。
请求Python库的优点和缺点是什么?
优点:
简单的
基本/摘要身份验证
国际域名和网址
阻止请求
超文本传输协议代理支持
缺点:
仅检索页面的静态内容
它不能用来解析超文本标记语言
无法处理由纯JavaScript制成的网站
2.lxml
Lxml是一个Python库,用于以高性能、高速度和高生产率解析超文本标记语言和可扩展标记语言。
它结合了元素树的速度和功能以及Python的简单性。当我们计划捕获大型数据集时,它可以发挥非常好的作用。
在网络爬行中,Lxml经常与请求结合使用。此外,它还允许使用XPath和CSS选择器从HTML中提取数据。
lxml Python库的优点和缺点是什么?
优点:
比大多数解析器都快
光线
使用元素树
皮托尼克原料药
缺点:
不适用于设计不良的超文本标记语言
官方文件不适合初学者
3.美丽的组合
美丽的程序可能是网络爬行中使用最广泛的Python库。它创建了一个解析树来解析超文本标记语言和可扩展标记语言文档。它还自动将传入的文档转换为Unicode,并将传出的文档转换为UTF-8。
在行业中,将“美丽的组合”和“请求”结合在一起是很常见的。美容套装受欢迎的主要原因之一是它易于使用,非常适合初学者。同时,您还可以将美丽汤与其他解析器(如lxml)结合起来。
但是相应地,这种易用性也带来了很多运行成本,这比lxml慢。即使lxml被用作解析器,它也比纯lxml慢。
