网络爬虫实现原理与实现技术

来源:互联网 发布:星韵抽奖软件注册码 编辑:程序博客网 时间:2024/05/16 05:51

网络爬虫实现原理详解

通用网络爬虫

  1. 获取初始的URL
  2. 根据初始的URL爬取网页
  3. 在爬取网页的同时又获得新的URL,将其添加到URL列队中
  4. 从URL队列中读取新的URL,依据新的URL进行网页爬取,重复上述步骤
  5. 满足爬虫系统设置的停止条件时停止爬取
    这里写图片描述

聚焦网络爬虫

聚焦网络爬虫由于其需要有目的的进行爬取,所以对于通用网络爬虫来说必须要增加目标定义和过滤机制,具体来说,其执行原理和过程需要多出三步,即“目标定义”“无关链接过滤”“下一步爬取URL的选取”
这里写图片描述
1. 获取初始URL
2. 根据初始URL爬取页面,并获得新的URL
3. 从新的URL中过滤掉与目标无关的URL
4. 将过滤后的链接放到URL队列中
5. 在URL队列中根据搜索算法确定优先级
6. 读取新的URL
7. 满足终止条件时停止

爬行策略

爬行策略主要有“深度优先爬行策略”“广度优先爬行策略”“大站优先爬行策略”“反链策略”“其他爬行策略”
这里写图片描述
1. 深度优先爬行策略:先爬取第一个网站,将该网站的下层网站依次深入爬取完再返回上层进行爬取
2. 广度优先爬行策略:先爬取同一层的网页,将同一层的网页爬取完再爬取下一层
3. 大站爬行策略:将网页所拥有的站点进行归类,如果某个网站拥有的网页数目多,则称为大站。
4. 反链策略:一个网页拥有的反向链接数是指该网页被其他网页所指向的次数,这个次数在一定程度上代表了该网页被其他网站所推荐的程度,按照反链策略的话,就是那个网站拥有的反链数目越多,就优先爬取哪个,弊端就是垃圾网站人为提高反链数量

网页更新策略

一个网站会经常更新,如果重新爬取的频率过高会浪费资源,过低会爬取到过时信息,爬取频率与网站更新频率越接近越好。因为爬虫服务器资源有限,因此要对不同的网页更新设置优先级,常用的网页更新策略有:用户体验策略,历史数据策略,聚类分析策略
1. 用户体验策略:当向搜索引擎提交一个关键字,会出现很多链接,但大部分用户只关注排名靠前的链接,此时爬虫会优先更新排名靠前的链接
2. 历史数据策略:通过对历史数据的分析来确定网页更新爬取的周期
3. 聚类分析策略:
(1)经过大量研究,网页可能具有不一样的内容,但具有类似属性的网页其更新频率类似
(2)对海量网页进行聚类分析,得到多个类
(3)聚类完成后,对同一个聚类的网页进行抽样,求出平均结果作为更新值这里写图片描述

网页分析算法

爬虫爬取了对应的网页之后会将网页存储到服务器的数据库中,对网页进行分析并确定其重要性,网页分析算法主要分为3类:基于用户行为的网页分析算法、基于网络拓扑的网页分析算法、基于网页内容的网页分析算法
1. 基于用户行为的网页分析算法
依据用户对网页的访问行为对网页进行评价,比如访问频率,访问时长等等
2. 基于网络拓扑的网页分析算法
依靠网页之间的链接关系、结构关系、已知网页或数据对网页进行分析的一种算法,主要包括:
(1)基于网页粒度的分析算法
(2)基于网页块粒度的分析算法
(3)基于网站粒度的分析算法
3. 基于网络内容的网页分析算法
依据网页的数据量,文本等网页内容特征

身份识别

在爬虫对网页爬取的过程中,正规的爬虫会告诉对应的网站站长其爬虫身份,网站站长可以通过爬虫告知身份对身份进行识别,这个过程称为爬虫的身份识别过程
一般通过HTTP请求中的User Agent字段来告知爬虫身份

网络爬虫实现技术

开发网络爬虫的语言比较:
1. Python:爬虫框架非常丰富,多线程处理能力强
2. java:适合大型爬虫项目
3. PHP:后台处理能力强,模块丰富,代码简介,但并发性能力相对差
4. Node.JS:支持高并发与多线程处理
5. C++:运行速度快,适合大型爬虫项目,成本较高
6. Go:高并发能力

实例——metaseeker

原创粉丝点击