导图社区 python网络爬虫知识梳理
这是一篇关于网络爬虫的思维导图,主要内容包括:常用框架,常用工具,常见的反爬机制以及处理方式,Chrome常用插件,常用模块,爬数据过程,分类,本质,定义,python爬虫优势,企业数据获取方式,目的。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
网络爬虫
目的
1.获取大量数据,用来做数据分析 2.公司项目的测试数据,公司业务所需的数据
企业数据获取方式
1.公司自有数据 2.第三方数据平台购买(万国数据,数据堂,贵阳大数据交易所) 3.爬虫爬取数据
python爬虫优势
python:请求模块,解析模块丰富成熟,强大的scrapy网络爬虫框架 php:对多线程,异步支持不太好 java:代码笨重,代码量大 c/c+:虽然效率高, 但是代码成型慢
定义
网络蜘蛛,网络机器人,抓取数据的程序
本质
用程序模仿人点击浏览器并访问网站,而且模仿的越逼真越好
分类
通用网络爬虫
搜索引擎使用,遵守robots协议
聚焦网络爬虫
自己写的爬虫程序,可以不遵守robots协议
爬数据过程
1.确定需要爬取的url地址 2.由请求模块向url地址发出请求,并得到网站的响应 3.从响应内容中提取所需数据 1.所需数据,保存 2.页面中有其他需要继续跟进的url地址,继续第2步
常用模块
urllib
发请求,解析响应对象
re
解析响应的数据,匹配提取需要的数据
csv
保存数据的数据
pymysql
保存数据到数据库
requests
标准第三方模块,发请求,获响应
lxml
xpath路径解析模块
fake_useragent
随机浏览器代理模块
json
处理动态页面的时候有用
queue
队列模块,通常和多线程联用
threading
开启多线程的模块
selenium
辅助使用自动化工具selenium的模块
scrapy
用scrapy框架做爬虫程序的时候用的模块
Chrome常用插件
xpath helper
获取html元素的xpath路径
Proxy SwitchOmega
浏览器中的代理管理扩展程序
JsonView
格式化输出json格式数据
常见的反爬机制以及处理方式
1.Headers发爬虫;Cookie,Refer,User-Agent;解决方案:通过F12获取headers,传递给requests.get()方法
2.ip限制;网站根据ip地质访问频率进行反爬,短时间内禁止ip访问,或者输入验证码才能访问;解决方案:a.构造自己的ip代理池,每次访问随机选择代理,经常更新代理池;b.购买开放代理或者私密代理ip;c.降低爬取的速度
3.User-Agent限制:类似于ip的限制;解决方案:构造自己的User-Agent池,每次访问随机选择
4.Ajax动态加载:从url加载网页的源代码以后,会在浏览器执行JavaScript程序,渲染页面;解决方案:F12获抓包工具抓包处理
5.对查询参数加密,解决方案:找到js文件,分析加密算法,用python实现加密执行js文件中的代码,返回加密数据、
6.对响应内容做处理,比如嵌入js程序,指向一个假的url;解决方案:打印并查看响应内容,用xpath或者正则做处理
常用工具
web自动化测试工具,必须与第三方浏览器结合使用,可根据指令操作浏览器(如模拟人点击下一页,搜索)
pyantomjs
pyantomjs经典的无界面浏览器,在内存中进行页面加载,非常高效,谷歌和火狐浏览器也可以开启无界面模式,从而提高效率
常用框架
支持异步,支持多线程等,可配置和可扩展程度非常高,使用最广泛
引擎:整个框架的核心
调度器:维护请求队列
下载器:获取响应对象
爬虫文件:数据解析提取
项目管道;数据入库处理