请求库
实现http请求操作
- requests
阻塞式http请求库,发出一个请求,一直等待服务器响应后,程序才能进行下一步处理
-
selenium
自动化测试工具,可以利用它驱动浏览器执行特地的动作,如点击,下拉,特别对于一些js渲染的页面,这种抓取十分有效,有三种浏览器的对接方式。ChromeDriver(Chrome)
GeckoDriver(火狐)
浏览器驱动插件,驱动浏览器执行相应的操作。不同浏览器需要下载不同的插件,需要配置相关的环境变量。phantomJS
一个无头(Headless,无界面,使用脚本进行操作)浏览器,可以进行模拟登录等操作,以便爬取需要的网站。aiohttp
提供异步的web服务的库,其的异步操作借助于async/await关键字,使用异步库进行数据抓取,可在等待期间做其他事,提高爬虫效率
解析库
从网页中提取信息,正则表达式写起来比较繁琐,所以产生了许多强大的解析库
lxml
支持html和XML的解析,支持Xpath解析方式(bs和scrapy框架都需要此库)。pyquery
提供类似jquery的语法来解析html文档,支持css选择器。html5lib
是一个Ruby和Python用来解析HTML文档的类库,支持HTML5以及最大程度兼容桌面浏览器。Beautiful Soup
html和XML的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。支持Python标准库中的HTML解析器,还支持一些第三方的解析器。
几种解析器的优劣比较
- tesserocr
Python的一个OCR(optical character recognition,光学字符识别)识别库 ,本质是对tesseract做的一层API封装,需要先安装 tesseract 。
可将图形验证码通过其形翻译成电子文本。