一、环境安装
1、python3安装
官网:https://www.python.org/downloads/
64 位系统可以下载 Windows x86-64 executable installer,32 位系统可以下载 Windows x86 executable installer,下载完成之后,直接双击运行 Python 安装包,使用图形界面安装,设置好 Python 的安装路径,完成后将 Python3和 Python3 的 Scripts 目录配置到环境变量即可。
点击环境变量,找到系统变量下的 Path 变量,随后点击编辑按钮
验证是否安装成功
2、请求库安装
爬虫可以简单分为几步:抓取页面、分析页面、存储数据。
Requests的安装
命令:pip install requests
Selenium的安装
命令:pip install selenium
ChromeDriver安装
查看chrome版本号,到chromeDriver官网下载对应驱动,将 chromedriver.exe 文件拖到 Python 的 Scripts 目录下
下载地址https://sites.google.com/a/chromium.org/chromedriver/downloads。
PhantomJS的安装
Chrome 或 Firefox 进行网页抓取的话,每次抓取的时候,都会弹出一个浏览器,比较影响使用。所以在这里再介绍一个无界面浏览器,叫做 PhantomJS。
PhantomJS 是一个无界面的,可脚本编程的 WebKit 浏览器引擎。它原生支持多种 web 标准:DOM 操作,CSS 选择器,JSON,Canvas 以及 SVG。
官方网站:http://phantomjs.org
官方文档:http://phantomjs.org/quick-start.html
下载地址:http://phantomjs.org/download.html
API接口说明:http://phantomjs.org/api/command-line.html
将下载的文件解压之后打开会看到一个 bin 文件夹,里面会包括一个可执行文件 phantomjs.exe,我们需要将它直接放在配置好环境变量的路径下或者将它所在的路径配置到环境变量里,如我们可以将它直接复制到 Python 的 Scripts 文件夹。
配置验证:打开cmd命令行,输入phantomjs
验证安装:
from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('https://www.baidu.com')
print(browser.current_url)
运行,内容如下:
Aiohttp的安装
Requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服务器的响应,直到得到响应后程序才会进行下一步的处理,其实这个过程是比较耗费资源的。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等等,那么爬取效率一定会大大提高。
Aiohttp 就是这样一个提供异步 Web 服务的库,从 Python3.5 版本开始,Python 中加入了 async/await 关键字,使得回调的写法更加直观和人性化,Aiohttp的异步操作借助于 async/await 关键字写法变得更加简洁,架构更加清晰。
官方文档:http://aiohttp.readthedocs.io/en/stable
GitHub:https://github.com/aio-libs/aiohttp
PyPi:https://pypi.python.org/pypi/aiohttp
命令:pip3 install aiohttp
官方推荐的其他两个库:
命令:pip3 install cchardet 字符编码检测库
命令:pip3 install aiodns 加速 DNS 解析库
3、解析库
抓取下网页代码之后,下一步就是从网页中提取信息,提取信息的方式有多种多样,可以使用正则来提取,但是写起来会相对比较繁琐。在这里还有许多强大的解析库,如 LXML、BeautifulSoup、PyQuery 等等,提供了非常强大的解析方法,如 XPath 解析、CSS 选择器解析等等,利用它们我们可以高效便捷地从从网页中提取出有效信息。
LXML的安装
LXML 是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。
命令:pip install lxml
BeautifulSoup的安装
BeautifulSoup 是 Python 的一个 HTML 或 XML 的解析库,我们可以用它来方便地从网页中提取数据,它拥有强大的 API 和多样的解析方式。
注意:在这里我们虽然安装的是 beautifulsoup4 这个包,但是在引入的时候是引入的 bs4,这是因为这个包源代码本身的库文件夹名称就是 bs4,所以安装完成之后,这个库文件夹就被移入到我们本机 Python3 的 lib 库里,所以识别到的库文件名称就叫做 bs4,所以我们引入的时候就引入 bs4 这个包。
因此,包本身的名称和我们使用时导入的包的名称并不一定是一致的
命令:pip install beautifulsoup4
PyQuery的安装
PyQuery 同样是一个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析 HTML 文档,支持 CSS 选择器,使用非常方便。
命令:pip install pyquery
Tesserocr的安装
爬虫过程中难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们可以直接用 OCR 来识别。
Tesserocr 是 Python 的一个 OCR 识别库,但其实是对 Tesseract 做的一层 Python API 封装,所以它的核心是 Tesseract,所以在安装 Tesserocr 之前我们需要先安装 Tesseract。
首先需要下载 Tesseract,它为 Tesserocr 提供了支持,下载链接为:http://digi.bib.uni-mannheim.de/tesseract/
点击进入之后可以看到有各种 exe 的下载列表,在这里可以选择下载 3.0 版本,如图 1-24 所示为 3.05 版本。其中文件名中带有 dev 的为开发版本,不带 dev 的为稳定版本,可以选择下载不带 dev 的最新版本,例如可以选择下载 tesseract-ocr-setup-3.05.01.exe。下载完成之后双击安装即可。在安装过程中可以勾选上 Additional language data 选项,安装 OCR 识别支持的语言包,这样 OCR 便可以识别多国语言,接下来再安装 Tesserocr 即可,直接使用 Pip 安装:
命令:pip install tesserocr pillow
4、数据库安装
MySQL的安装
MySQL 是一个轻量级的关系型数据库,以表的形式来存储数据,本节我们来了解下它的安装方式。
下载地址:https://www.mysql.com/cn/downloads
MongoDB安装
MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似 Json 对象,它的字段值可以包含其他文档,数组及文档数组,非常灵活。
链接为:https://www.mongodb.com/download-center#community
Redis的安装
Redis 是一个基于内存的高效的非关系型数据库。
下载链接:https://github.com/MSOpenTech/redis/releases。
5、存储库安装
和 Python 交互的话也同样需要安装一些 Python 存储库,如 MySQL 需要安装 PyMySQL,MongoDB 需要安装 PyMongo 等等
PyMySQL的安装
命令:pip install pymysql
PyMongo的安装
命令:pip install pymongo
RedisPy的安装
命令:pip install redis
RedisDump的安装
RedisDump 是一个用于 Redis 数据导入导出的工具,是基于 Ruby 实现的,所以要安装 RedisDump 需要先安装Ruby。
有关 Ruby 的安装方式可以参考:
http://www.ruby-lang.org/zh_cn/documentation/installation
安装完成之后,我们就可以执行 gem 命令了,它类似于 Python 中的 pip 命令:gem install redis-dump
6、web库安装
Flask的安装
命令:pip install flask
Tornado的安装
Tornado 是一个支持异步的Web框架,通过使用非阻塞 I/O 流,它可以支撑成千上万的开放连接,效率非常高。
命令:pip install tornado
7、爬虫框架安装
PySpider的安装
PySpider 是国人 binux 编写的强大的网络爬虫框架,它带有强大的 WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时它支持多种数据库后端、多种消息队列,另外它还支持 JavaScript 渲染页面的爬取,使用起来非常方便。
命令:pip install pyspider
Scrapy的安装
Scrapy 是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖库有 Twisted 14.0,lxml 3.4,pyOpenSSL 0.14。而在不同平台环境又各不相同,所以在安装之前最好确保把一些基本库安装好。
官方网站:https://scrapy.org
官方文档:https://docs.scrapy.org
PyPi:https://pypi.python.org/pypi/Scrapy
GitHub:https://github.com/scrapy/scrapy
中文文档:http://scrapy-chs.readthedocs.io
安装LXML
安装pyOpenSSL
pip install pyOpenSSL
安装Twisted
到 http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载 Wheel 文件,利用 Pip 安装即可。 如 Python 3.6 版本,Windows 64 位系统,当前最新版本为 Twisted17.5.0cp36cp36mwin_amd64.whl,直接下载即可。
然后 Pip 安装即可:
pip3 install Twisted‑17.5.0‑cp36‑cp36m‑win_amd64.whl
安装Scrapy
pip3 install Scrapy