用Python进行网站数据抓取是我们获取数据的一个重要手段。而在Python中网站抓取有大量的库可以使用,如何选择合适的库用于自己的项目呢?
先不直接给出答案,下文所列举的是我认为较为通用的3个Python库,将通过对它们的优劣评估来回答那些疑问。
Requests
Requests是一个Python库,用于发出各种类型的HTTP请求,例如GET,POST等。由于其简单易用,它被称为HTTP for Humans。
我想说这是Web抓取最基本但必不可少的库。但是,请求库不会解析检索到的HTML数据。如果要这样做,还需要结合lxml和Beautiful Soup之类的库一起使用。
那Requests Python库有哪些优缺点?
优点:
简单
基本/摘要身份验证
国际域名和URL
分块请求
HTTP(S)代理支持
缺点:
仅检索页面的静态内容
不能用于解析HTML
无法处理纯JavaScript制作的网站
lxml
lxml是一种高性能,快速,高质生产力的HTML和XML解析Python库。它结合了ElementTree的速度和功能以及Python的简单性。当我们打算抓取大型数据集时,它能发挥很好的作用。
在Web抓取的时候,lxml经常和Requests进行组合来使用,此外,它还允许使用XPath和CSS选择器从HTML提取数据。
那lxml Python库的优缺点有哪些?
优点:
比大多数解析器快
轻巧
使用元素树
Pythonic API
缺点:
不适用于设计不当的HTML
官方文档不太适合初学者
BeautifulSoup
BeautifulSoup也许是Web抓取中使用最广泛的Python库。它创建了一个解析树,用于解析HTML和XML文档。还会自动将传入文档转换为Unicode,将传出文档转换为UTF-8。
在行业中,将“BeautifulSoup”与“Requests”组合在一起使用非常普遍。
让BeautifulSoup备受欢迎的主要原因之一,就是它易于使用并且非常适合初学者。同时,还可以将Beautiful Soup与其他解析器(如lxml)结合使用。
但是相对应的,这种易用性也带来了不小的运行成本——它比lxml慢。即使使用lxml作为解析器,它也比纯lxml慢。
下面来综合看下BeautifulSoup库的优缺点都有哪些?
优点:
需要几行代码
优质的文档
易于初学者学习
强大
自动编码检测
缺点:
比lxml慢
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。