本篇介绍的是网络爬虫的相关概念
概要
1.什么是爬虫
2.细分爬虫的种类
3.爬虫有关的协议
4.网站的反爬机制及对应的反反爬策略
爬虫
爬虫是什么
爬虫就是编写程序来模拟浏览器上网并让程序去互联网上获取数据的过程。
爬虫为什么以python语言实现较多
爬虫可以由很多语言来实现,比如:
- Java:Java可以非常好的处理和实现爬虫,是唯一可以同python抗衡的语言,但是使用Java实现起来代码太臃肿,重构的成本太大
- C、C++:对程序员综合素质要求太高,属于大神们的选择
- PHP:PHP号称全世界最优美的语言,但是它在爬虫中支持多线程和多进程方面不太好
- python:具有很多强大的框架,代码优美,好处多多哦
细分爬虫的种类
- 通用爬虫:
通用爬虫是搜索引擎,比如百度啊,谷歌啊,这些搜索引擎“抓取系统”的重要组成部分。主要目的是把互联网上的网页下载到本地来形成一个互联网内容的镜像备份。即将互联网上的所有网页下载保存到本地的服务器里形成备份,再对这些网页进行相关的处理(提取关键字、去除广告等),最后给用户提供一个检索的接口。
搜索引擎是如何获取互联网上的网站数据:
- 搜索引擎公司和DNS服务商合作获取网站的URL
- 门户网站主动给搜索引擎公司提供自己的URL
- 门户网站主动挂靠在一些知名网站的友情链接中
- 聚焦爬虫
聚焦爬出指的是根据指定的需求爬取所需要的数据,而不是全部爬取下来。
- 增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler)是 指 对 已 下 载 网 页 采 取 增 量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。 和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫的体系结构[包含爬行模块、排序模块、更新模块、本地页面集、待爬行 URL 集以及本地页面URL 集
- Deep Web爬虫
- 分布式爬虫
后面我会专门用一篇博客来介绍这种爬虫
爬虫有关的协议
很多人学完爬出什么都想爬,什么都敢去爬,完全不顾及,最终进去喝茶了。为了避免这种情况的发生,我们有必要了解一下基础的爬虫协议。
- Robots.txt协议
如果自己的网站中指定页面的一些数据不想被别人爬虫,那么可以通过编写一个robots.txt的协议文件来约束爬虫程序的爬取。在爬虫一个网页之前,我们可以通过这个网页的URL+robots.txt观察一下。
举个例子:
https://www.csdn.net/robots.txt
以CSDN网站的robots.txt为例,打开之后可以看到:
这个页面给出哪些数据可以爬出哪些数据不能被爬取。
不过,这个协议相当于口头的协议,它并没有使用相关的技术去阻止我们。
网站的反爬机制及对应的反反爬策略
反爬机制就是指一些网站通过一些策略和技术来阻止爬虫程序进行网站数据的爬取。
反反爬策略指的是通过相应的策略和技术手段,破解网站的反爬出机制从而得到相应的数据