网络爬虫——简介

本文介绍了网络爬虫的基本概念,包括爬虫分类,如通用爬虫和聚焦爬虫,以及爬行策略如深度优先和广度优先。还讨论了网页更新策略,如用户体验和历史数据策略,并提到了网页请求的Get和Post类型。

爬虫笔记(一)

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本(参考百度百科)。

一、爬虫分类

爬虫,可分为四大类(通用爬虫、聚焦爬虫、增量式爬虫、深度爬虫)对应不同的需求场景。

  1. 通用爬虫
    通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,通常采用并行的工作方式。
    通用网络爬虫的结构通常分为可以分为页面爬行模块 、页面分析模块、链接过滤模块、页面数据库、URL 队列、初始 URL 集合几个部分。
获取初始URL
爬取HTML内容
获得新的URL
将新的URL放入URL队列
存储需要的数据至数据库
页面分析
读取新的URL
是否满足停止条件
停止
  1. 聚焦爬虫
    聚焦网络爬虫(Focused Crawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面。聚焦网络爬虫和通用网络爬虫相比,考虑到了爬行策略,根据每个链接的重要性不同,在URL队列中的优先级也会不同。
定义爬取的目标
获取初始URL
爬取HTML内容
获得新的URL
将新的URL放入URL队列
存储需要的数据至数据库
页面分析
读取新的URL
是否满足停止条件
停止
过滤无关URL

二、爬行策略

通用爬虫对于URL队列的排序要求可能不是很高,但对于聚焦爬虫则不同。为了节省资源,聚焦爬虫会根据爬行策略,结合预先定义好的爬取主题,对URL队列中的链接进行排序,优先爬取排名靠前的URL链接。常见的爬行策略有:深度优先策略、广度优先策略、大战优先策略、反链策略(根据被其他网页指向的次数来进行优先级判定)、OPIC策略、Partial PageRank策略等。

三、网页更新策略

对于爬取存至数据库的数据,有的内容基本不会有太大变动,但是有的内容可能具有一定的实效性,因此需要根据网页的更新频率对网页内容进行周期性的爬取,保证保存的数据是较新的。常用的网页更新策略主要有:用户体验策略、历史数据策略、聚类分析策略等。

  1. 用户体验策略
    搜索引擎在查询某个关键的时候,会有一个排名结果,排名结果中会有大量的网页,但是,大部分的用户只会关注排名靠前的网页。爬虫会优先更新排名结果考前的网页。这种更新策略,称之为用户体验策略。
  2. 历史数据策略
    爬虫该何时去爬取结果考前的网页?在爬取的过程中,如果保留对应的网页的多个历史版本,并进行对应的分析,依据多个历史版本的内容更新、收索质量影响、用户体验等信息,来确定网页的爬取周期。我们同样也可以依据某个网页的历史更新数据,通过泊松过程进行建模等手段,预测该网页下一次更新的时间。
  3. 聚类分析策略
    以上两种策略,都需要历史数据作为依据。对于新的网页可能不太公平,因此需要采取新的更新策略,常见的如:聚类分析策略。
    所谓物以类聚、人以群分,聚在一起的事务一定有某种共性。将聚类分析算法运用在爬虫对网页的更新上,大致过程如下:
海量网页
聚类分析
聚类1
聚类2
聚类3
聚类4
抽样-聚类1更新频率
抽样-聚类2更新频率
抽样-聚类3更新频率
抽样-聚类4更新频率

四、网页的请求类型

请求类型分为两种(Get\Post)
Get——req.Request(url,header)
Post——req.Request(url,header,postdata)
具体的用法,会在下一次的博客中进行详细的介绍。

五、网页请求的常见错误

NumberCode含义
200OK一切正常
301Moved Permanently重定向到新的URL,永久性
302Found重定向到新的URL,非永久性
304Not Modified请求资源未更新
301Moved Permanently重定向到新的URL,永久性
302Found重定向到新的URL,非永久性
400Bad Request非法请求
403Forbidden禁止访问
404Not Found没有找到对应页面
500Internal Server Error服务器内部错误
501Not Implemented服务器不支持实现请求所需要的功能
302Found重定向到新的URL,非永久性
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的胖虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值