网络爬虫的组成
网络爬虫由控制节点、爬虫节点、资源库构成。控制节点,又称为爬虫的中央控制器,主要负责根据URL地址分配线程,并调用爬虫节点进行具体的爬行。网络爬虫中可以有多个控制节点,每个控制节点下可以有多个爬虫节点,控制节点之间可以互相通信,控制节点和其下的爬虫节点之间也可以相互通信,属于同一个控制节点下的各爬虫节点间,也可以相互通信。
实现原理与实现技术
不同网络爬虫原理不尽相同,但存在很多共性,这里以两种典型的爬虫为例:通用网络爬虫、聚焦网络爬虫
- 通用网络爬虫
实现原理与过程如下:
- 获取初始的URL
- 根据初始的URL爬取页面并获取新的URL
- 将新的URL放到URL队列中
- 从URL队列中读取新的URL,并根据新的URL爬取网页,同时从新网页中获取新的URL,并重复上述爬取过程
- 满足爬虫系统设置的停止条件时,停止爬取
- 聚焦网络爬虫(有目的地进行爬取)
实现原理与过程如下:
- 定义和描述要爬取的目标
- 获取初始的URL
- 根据初始的URL爬取页面并获取新的URL
- 从新的URL中过滤掉与爬取目标无关的链接,同时将已爬取的URL地址存放到一个URL列表中,用于去重和判断爬取的进程
- 将过滤后的链接放到URL队列中
- 从URL队列中,根据搜索算法,确定URL的优先级,并确定下一步要爬取的URL地址
- 从下一步要爬取的URL地址中,读取新的URL,然后依据新的URL地址爬取网页,并重复上述爬取过程
- 满足系统中设置的停止条件,或无法获取新的URL地址时,停止爬行
爬行策略
主要有深度优先、广度优先、大站优先、反链策略、其他爬行策略等。
网页更新策略
网站的网页经常会更新,作为爬虫方,在网页更新后,需要对这些网页进行重新爬取,爬虫要根据一定的更新策略让不同的网页有不同的爬取优先级。常用的策略有3种:用户体验策略、历史数据策略、聚类分析策略。
网页分析算法
爬虫爬取了对应的网页后,会将网页存储到服务器的数据库中,之后,搜索引擎会对这些网页进行分析并确定各网页的重要性。有如下3类分析算法:基于用户行为的网页分析算法、基于网络拓扑的网页分析算法、基于网页内容的网页分析算法。
身份识别
一般的,爬虫对网页进行爬取的时候,会通过HTTP请求中的User Agent字段告知自己的身份信息。一般爬虫访问一个网站的时候,首先会根据该站点下的Robots.txt文件来确定可以爬取的网页范围,Robots协议是需要网络爬虫共同遵守的协议,对于一些禁止的URL地址,网络爬虫则不应该爬取访问。