网站内容更新策略(如何定义页面的变化这部分的网页更新检测页面变化)

优采云 发布时间: 2021-10-04 04:07

  网站内容更新策略(如何定义页面的变化这部分的网页更新检测页面变化)

  因为爬虫爬取的数据是针对搜索引擎的。搜索引擎对互联网数据进行整合和分类,供用户检索和查看。因此,需要能够感知互联网数据的变化。

  即爬虫已经爬取过的数据需要定期重新爬取,检测页面是否发生变化。

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

  一:页面依然存在,但页面内容发生了变化。我们称之为内容更新。因为搜索引擎根据爬虫爬取的网页内容建立索引,为用户提供检索。

  如果爬虫抓取后网页内容发生变化。可以生成查询以供用户检索。搜索引擎根据旧内容判断网页适合用户,与用户查询相关度高,返回页面

  用户的网址。更新后的页面可能与用户的查询完全无关。这会影响用户体验。此外,更新的内容可能有助于我们发现一些新的和重要的

  网址链接。我们将此类问题统称为更新检测。

  二:页面不再存在,即我们无法再通过网页的url(http代码200))获取到网页的内容,这称为死链接。在用户搜索中,我们返回这样的网址给用户。,

  用户点击后,无法正常打开。也会影响用户体验。这种问题叫做死链接检测

  更新检测

  因为更新检测是为了确定页面内容的变化。因此,如何判断页面变化是我们关注的重点。而如何定义页面的变化是这部分需要考虑的问题。

  最简单的方法是对被爬取的网页的整个内容计算一个哈希值来标记它的内容。然后比较两次抓取的网页内容的hash值是否相同,判断页面内容是否发生了变化。

  如果有更改,则该网页尚未更新。这种方法判断页面内容没有变化是准确的。即如果网页内容的hah值没有变化,那么网页内容根本没有变化。我们说网页没有更新

  是准确的。但是网页的更新比较粗糙。也就是说,即使网页内容的值因html标签或字符而改变,计算出来的hash值也会不同。这时候,对我们来说,网页就变了。

  这个时候的问题是变更门槛低,我们可能会判断出更多的变更是无效的。因为对于一个网页,我们一般会关注其主体的主题内容。其他部分的变化不适合我们

  担心的。同时,网页整体哈希值的对比无法得知页面变化的程度。将网页中某个字符的变化与网页整体内容的变化进行对比,就相当于对比了网页整体的哈希值。一个改进的方案是

  simhash的(参考)方法。这时候我们就需要对页面的区域进行划分。确定页面不同区域的变化

  感知页面发生了多少变化。而这个问题会在不同的搜索引擎公司以不同的方式实施。

  死链检测

  死链接检测只是基于爬取时返回的Http代码。即之前可以获取到code200.,但是现在无法获取到code200.,但实际情况要复杂得多。因为不同的httpcode有不同的含义(见:部分)。因此,相同的不是200,需要区分不同的代码。例如,3xx 的代码代表一个跳转。这时候就意味着网页的内容还存在,只是需要通过另外一个url来访问。4xx代码表示无法响应,网页内容可能不存在了。

  请注意,我们上面使用的都是可能的。这也是因为实际情况比较复杂。我们的爬虫获取到的http代码是4xx。但实际情况有很多可能。

  一种可能:对方处理爬虫或者只处理我们的爬虫,会继续或者偶尔返回4xx代码(有些网站在网站压力大的情况下会返回不成功的代码)。

  可能性2:对方的服务器不是很稳定,可能在访问的时候访问不成功,返回code。

  可能性三:网页确实无法访问。.

  当然还有其他的可能性。但在所有的可能性中,除了网页确实无法访问之外,我们不应将其判断为死链接。因为当用户访问时,网页可能仍然可以访问。

  但是如何判断哪个可能是个麻烦的问题。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线