本文为整理最近学习的爬虫内容,学习网址https://germey.gitbooks.io/python3webspider/
开发环境配置
目录
1. python3
2. 请求库的安装
爬虫可以简单分为几步:抓取页面、分析页面、存储数据。
在第一步抓取页面的过程中,我们就需要模拟浏览器向服务器发出请求,所以需要用到一些 Python 库来实现 HTTP 请求操作。
介绍安装的库有:requests、selenium、aiohttp、ChromeDriver/GeckoDriver、PhantomJS
Requests
是一个阻塞式 HTTP 请求库。
pip install requests
Selenium
是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。
pip install selenium
ChromeDriver(https://chromedriver.storage.googleapis.com/index.html)/GeckoDriver(https://github.com/mozilla/geckodriver/releases)(相应的浏览器驱动)
PhantomJS(http://phantomjs.org/download.html)
如果我们使用 Chrome 或 Firefox 进行网页抓取的话,每次抓取的时候,都会弹出一个浏览器,比较影响使用。所以在这里再介绍一个无界面浏览器,叫做 PhantomJS。
PhantomJS 是一个无界面的,可脚本编程的 WebKit 浏览器引擎。它原生支持多种 web 标准:DOM 操作,CSS 选择器,JSON,Canvas 以及 SVG。
Selenium 支持 PhantomJS,这样在运行的时候就不会再弹出一个浏览器了,而且其运行效率也是很高的,还支持各种参数配置,使用非常方便。
Aiohttp
是一个提供异步 Web 服务的库,从 Python3.5 版本开始,Python 中加入了 async/await 关键字,使得回调的写法更加直观和人性化,Aiohttp的异步操作借助于 async/await 关键字写法变得更加简洁,架构更加清晰。使用异步请求库来进行数据抓取会大大提高效率。
pip install aiohttp
3. 解析库的安装
抓取下网页代码之后,下一步就是从网页中提取信息,提取信息的方式有多种多样,可以使用正则来提取,但是写起来会相对比较繁琐。在这里还有许多强大的解析库,如 LXML、BeautifulSoup、PyQuery 等等,提供了非常强大的解析方法,如 XPath 解析、CSS 选择器解析等等,利用它们我们可以高效便捷地从从网页中提取出有效信息。
介绍安装的库有:lxml、beautifulsoup4、pyquery、Tesserocr
LXML
是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。
pip install lxml
BeautifulSoup
是 Python 的一个 HTML 或 XML 的解析库,我们可以用它来方便地从网页中提取数据,它拥有强大的 API 和多样的解析方式。
pip install beautifulsoup4
PyQuery
同样是一个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析 HTML 文档,支持 CSS 选择器,使用非常方便。
pip install pyquery
Tesserocr (https://pypi.python.org/pypi/tesserocr)
是 Python 的一个 OCR 识别库(验证码识别库),但其实是对 Tesseract 做的一层 Python API 封装,所以它的核心是 Tesseract(http://digi.bib.uni-mannheim.de/tesseract),所以在安装 Tesserocr 之前我们需要先安装 Tesseract。
sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev
安装完成之后便可以调用 tesseract 命令了。
我们查看一下其支持的语言: