简要说一下关于爬虫的东西。
爬虫的概念
爬虫的别名很多,网络爬虫,网络蜘蛛之类的大家都知道就不说了。
通俗来讲,爬虫就是通过编写程序,模拟我们使用浏览器上网,在互联网中抓取我们想要的数据的过程。
这里有两个关键词:模拟和抓取
- 模拟,也就是通过代码来进行操作,不需要人直接参与访问网页的过程。不过其实从广义上讲,我们使用浏览器也可以看作是一个爬虫的过程。浏览器就是一个纯天然最原始的一个爬虫工具。只不过我们的效率太低,这种工作太无聊,所以交给计算机去做了而已
- 抓取,又涉及到两个方面的含义:抓取一整张的页面源码数据和抓取一整张页面中的局部数据。显而易见,要抓取到页面的局部数据,首先还是要抓取到一整张页面的完整源码数据。
爬虫的分类
依据抓取的内容和使用的方式不同,大致可以将爬虫分为四个类别:通用爬虫、聚焦爬虫、增量式爬虫和分布式爬虫。
通用爬虫:爬取一整张页面的源码数据
聚焦爬虫:爬取一张页面中的局部的数据,聚焦爬虫一定是建立在通用爬虫基础之上
增量式爬虫:用来监测网站数据更新的情况,以便爬取到网站最新更新出来的数据
分布式爬虫:提高爬取效率的终极武器。基于 scrapy 框架,使用的方法包括但不限于高并发
反爬机制与反反爬策略
- 反爬机制
- 是作用到门户网站中。如果网站不想让爬虫轻易爬取到数据,它可以制定相关的机制或者措施阻止爬虫程序爬取其数据。
- 反反爬策略
- 是作用在爬虫程序中。我们爬虫可以制定相关的策略破击反爬机制从而爬取到相关的数据。
robots 协议,课程第一个反爬机制
- robots 协议:防君子不防小人
- 是一个纯文本的协议,协议中规定了该网站中哪些数据可以被哪些爬虫爬取,哪些不可以被爬取。
- 一般在网站的门户页面后面加上
/robots.txt
即可查看该网站的 robots 协议,比如京东的:
- 破解:
- 你自己主观性地不遵从该协议即可。
爬虫模块
我们要学到的爬虫模块又下面两个:requests 和 scrapy。
requests 模块
- 数据解析
- 动态加载数据的爬取
- selenium
- 移动端数据的爬取
- 异步的爬虫
- 10 种反爬机制
scrapy 框架
- 异步的爬虫框架