正所谓工欲善其事必先利其器,Python之所以被广大程序员使用主要在于他有丰富的第三方包,所以不管是Web框架还是机器学习框架、抑或是爬虫框架,让人眼花缭乱,这样给了程序员们更多的选择,也是其他几种编程语言无法企及的地方。
1、Requests
Requests是一个HTTP请求库,完美体现了Python简单、优雅、易勇的编程哲学,开发者经常拿它的源代码作为参考,是不可多得的源代码学习资料。
2、BeautifulSoup
如果说 Requests 是最好的 HTTP 请求库,那么 BeautifulSoup 就是最好的 HTML 解析库,HTML 文档返回之后需要解析,我们可以用 BeautifulSoup 解析,它的API对程序员来说非常友好、用起来简单,API非常人性化,支持css选择器,有人说它的速度慢,在数据量并不是特别的情况下,其实没人care,人力成本可以机器成本高多了。
3、Fiddler
Fiddler 本质上不是爬数据的,而是一个爬虫辅助工具,在分析爬虫的请求时,有时候仅仅依靠浏览器来跟踪请求力量太显单薄了,特别是针对移动设备的爬虫束手无策,Fiddler 简直就是移动设备上爬虫的克星,手机上如何HTTP请求都可以被Fiddler监控,有了它,再也不要担心爬不到手机上的数据了。
4、Selenium
当你无法通过Requests获取数据时,换一种方案用Selenium,Selenium 是什么?本身是自动化测试工具。如果你在浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试,当然也可以用于爬虫。比如自动打开百度:
5、Tesseract
Tesseract 是一个文字识别工具,在一些复杂的爬虫情景下,服务器的反爬虫需要用户输入验证码才能进行下一步操作,而 Tesseract 可以自动识别出验证码,如果你懂一点机器学习算法,自己训练一套数据,就算12306这样的验证码也不是什么难事。
6、Scrapy
写爬虫用Requests只能是搞搞小项目,适合刚入门的小白学习或者是简单的业务场景,如果是做大规模爬虫,Scrapy 的效率、性能都是工业级别的,你无需自己造轮子。分布式爬虫就用Scrapy。