爬虫那些事儿--页面变化检测策略

本文探讨了爬虫在处理网页数据时的页面更新和死链检测问题。更新检测通过计算页面内容的hash值或使用simhash来判断变化;死链检测依赖于HTTP状态码,但需区分不同情况,如3xx代表跳转,4xx可能意味着网页不可访问,实际判断需考虑多种复杂因素。
摘要由CSDN通过智能技术生成

    由于爬虫爬取的数据是为搜索引擎服务的。而搜索引擎是为互联网的数据做整合分类以便用户进行检索查看的。因此需要能感知互联网的数据的变化。

即对于爬虫已经爬取的数据还需要定期去重新抓取,以检测页面是否变化。

    页面的变化我们将其划分为两类:

    一: 页面仍存在,但是页面的内容改变了。我们称之为内容更新。由于搜索引擎是基于爬虫爬取的网页的内容建立索引提供用户检索的。

如果在爬虫爬去之后网页的内容改变了。则可能会产生用户检索一个query,搜索引擎基于旧的内容判断网页适合用户query高度相关并返回该页面

的url给用户。而更新后的页面可能和用户的query是完全不相关的。这就会影响用户的体验。 另外更新后的内容可能会帮助我们发现一些新的重要的

url链接。 这样的问题我们统称为更新检测。

    二: 页面已经不存在了,即我们已经无法通过网页的url获取网页的内容(http code 200).这种称之为死链。 在用户搜索是我们将这样的url返回给用户,

用户点击后却无法正常打开。也是会影响用户体验的。 这样的问题我们称为死链检测

 

更新检测

    由于更新检测是判断页面内容的变化。因此怎么判断页面变化就是我们关注的焦点。而如何定义页面的变化就是这部分需要考虑的问题。

    最简单的方式可以对抓取的网页整体内容计算一个hash值用来标记其内容。然后比对不同的两次抓取的网页内容的hash值是否相同来判断页面内容是否变化。

有变化则仍未网页有更新。该种方式对于页面内容不变化的判断是准确的。即如果网页内容的hah值没有改变,那么网页的内容没有任何变化。我们说网页没有更新

是准确的。但是对于网页的更新则是粗略的。即网页的内容即使值改变了一个html标签或者改变了一个字符,计算的hash值就不同了。这时对我们来说网页就是改变的。

此时带来的问题是改变的阈值较低࿰

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值