我爱编程

2018-05-08 D1本书主要内容

2018-05-08  本文已影响0人  dongdonghao

    自我理解:简短的介绍下本书的内容,本书一共分为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

后面会用到这个库,比如维护一个代理池,用异步方式检测大量代理的运行情况,能极大的提高效率


上一篇下一篇

猜你喜欢

热点阅读