文章目录
开发环境
网络爬虫可以简单分为几个步骤:抓取界面,分析网页,存储数据
请求库
requests
安装:pip install requests
selenium
Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些 JavaScript 渲染的页面来说,这种抓取方式非常有效。
安装:pip install selenium
aiohttp 的安装
之前介绍的 requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服务器响应,直到得到响应后,程序才会进行下一步处理。其实,这个过程比较耗费时间。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等,那么爬取效率一定会大大提高。
aiohttp 就是这样一个提供异步 Web 服务的库,从 Python 3.5 版本开始,Python 中加入了 async/await 关键字,使得回调的写法更加直观和人性化。aiohttp 的异步操作借助于 async/await 关键字的写法变得更加简洁,架构更加清晰。使用异步请求库进行数据抓取时,会大大提高效率。
安装: pip install aiohttp
解析库
lxml
支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。
安装:pip install lxml
Beautiful Soup
Beautiful Soup 是 Python 的一个 HTML 或 XML 的解析库,我们可以用它来方便地从网页中提取数据。它拥有强大的 API 和多样的解析方式。
安装:pip install beautifulsoup4
pyquery
pyquery 同样是一个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析 HTML 文档,支持 CSS 选择器,使用非常方便。
安装:pip3 install pyquery
tesserocr
在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们可以直接用 OCR 来识别。
安装:pip3 install tesserocr pillow
需先下载 tesseract
web库
Flask
Flask 是一个轻量级的 Web 服务程序,它简单、易用、灵活,这里主要用来做一些 API 服务。
安装:pip install flask
Tornado
Tornado 是一个支持异步的 Web 框架,通过使用非阻塞 I/O 流,它可以支撑成千上万的开放连接,效率非常高,本节就来介绍一下它的安装方式。
安装:pip3 install tornado
APP抓取库
Charles
Charles 是一个网络抓包工具,相比 Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。
安装:以后再说
mitmproxy
安装:pip3 install mitmproxy
Appium
Appium 是移动端的自动化测试工具,类似于前面所说的 Selenium,利用它可以驱动 Android、iOS 等设备完成自动化测试,比如模拟点击、滑动、输入等操作,其官方网站为:http://appium.io/。
安装:以后再说
爬虫框架
pyspider
pyspider 是国人 binux 编写的强大的网络爬虫框架,它带有强大的 WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时支持多种数据库后端、多种消息队列,另外还支持 JavaScript 渲染页面的爬取,使用起来非常方便
安装:pip3 install pyspider