自我理解:简短的介绍下本书的内容,本书一共分为15章,内容如下:
第一章
介绍了配置环境,非常的详细具体,设计Linux,Mac, Linux三大平台。
第二章
介绍了学习爬虫之前需要了解的一些知识,例如HTTP, 爬虫, 代理的基本原理,网页基本结构等内容,适合没有基础的同学。
第三章
介绍了最基本的爬虫操作,一般学习爬虫都是从这一步开始学的,主要介绍了两个基本的库(urllib和requests)和正则表达式的基本用法
第四章
介绍了页解析库的基本用法,包括Beautiful Soup,XPath, pyquery的基本用法。
第五章
介绍了数据存储的常见形式及存储操作,包括TXT,JSON,CSV各种文件的存储,以及关系型数据库MySQL和非关系数据库MangoDB,Redis存储的基本存储操作。
第六章
介绍Ajax数据爬取的过程, 一些网页的数据可能是通过Ajax请求API接口的方式加载的,用常规方法无法爬取,本章主要是介绍Ajax进行数据爬取的方法。
第七章
介绍了动态渲染页面的爬取,现在越来越多的网站内容经过了JavaScript渲染得到的,而原始HTML文本可能不包含任何有效内容,而且渲染可能涉及某些JavaScript加密算法,可以使用Seleminm,Splash等工具实现模拟浏览器进行爬取数据的方法。
第八章
介绍了验证码的相关处理方法。验证码是网站反爬虫的重要措施, 图形验证码,极验验证码,点触验证码,微博宫格验证码。
第九章
介绍了代理的使用,限制IP也是网站反爬虫的重要措施,我们可以用代理池维护伪装爬虫,还使用了ADSL拨号代理的使用方法。
第十章
介绍了模拟模拟登录爬取方法,本章介绍了最基本的模拟登陆方法以及维护一个Cookies池的方法。
第十一章
介绍了APP的爬取方法,包括基本的Charles,mitmproxy抓包软件的使用。还介绍了mitmdump对接Python脚本进行实施抓取的方法,以及使用Appium完全模拟手机App的操作进行爬取的方法。
第十二章
介绍了pyspider爬虫框架及用法。
第十三章
介绍了Scrapy爬虫框架及用法。
第十四章
介绍了分布式爬虫的基本原理及实现方法
第十五章
介绍了分布式爬虫的部署及管理方法。 结合了Scrapy, Scrapyd, Docker, Gerapy等工具介绍了分布式爬虫的部署和管理实现。
第1章 开发环境配置
这章写的真好。简单明了,没那么多事。
1.1 Python3的安装
已装
1 Anaconda安装, 提供了Python科学计算环境,自带Python以及常用的库。
1.2请求库的安装
爬虫可以分为简单三步:抓取页面,分析页面和存储数据
在抓取过程中,我们需要模拟浏览器向服务器发出请求。用到的库requests, Selenium和aiohttp等
1.2.1 requests的安装
已安装
1.2.2 Selenium的安装
Selenium是一个自动化测试工具,利用它我们可以让浏览器执行特定的动作,比如点击,下拉等操作。对于一些JavaScript渲染的网页来说,这种方法特别有效。
pip install selenium 安装成功
1.2.3 ChromeDriver的安装
先安装Chrome浏览器, 版本66,然后根据版本号下载ChromeDriver
ChromeDriver是驱动,
from selenium import webdriver
browser = webdriver.Chrome()
会弹出一个空白的Chrome浏览器
1.2.4 GeckoDriver的安装
它是FireFox浏览器的去佛那个,不用装
1.2.5 PhantomJS的安装
PhantomJS是一个无界面的,可脚本变成的WebKit浏览器引擎,它原生支持多种Web标准:DOM操作,CSS选择器,JSON,Canvas以及SVG。
Selenium支持PhantomJS,运行效率还很高,还支持各种参数配置,使用非常方便。
from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('http://www.baidu.com')
print(browser.current_url)
1.2.6 aiohttp的安装
requests库是一个阻塞式HTTP请求库
aiohttp是一个提供异步Web服务的库。关键字 async/await
字符编码检测库cchardet 加速DNS的解析库aiodns
后面会用到这个库,比如维护一个代理池,用异步方式检测大量代理的运行情况,能极大的提高效率