网站内容更新监控(监控就是检查页面内容是否发生了变化(一)_)

优采云 发布时间: 2022-02-26 05:11

  网站内容更新监控(监控就是检查页面内容是否发生了变化(一)_)

  作为网页爬虫工具工作时,经常需要对页面进行监控和解析,监控就是检查页面内容是否有更新。判断一个网页是否发生变化最直接的方法就是将页面的某一部分设置为监控区域,每次抓取该部分区域的内容,然后与本地保存的内容或最新爬取的内容进行对比内容,如果有差异,说明网页有变化,可以分析。这种方法更可靠,几乎万无一失。但是这种方法每次扫描都要下载页面内容,还要截取监控区域的内容,最后还要进行字符串比较,整个过程比较耗时。事实上,在众多网页中,一些网站网页内容是静态页面,比如图片、html、js等,这些静态页面往往是服务器准备的,用户访问时直接下载即可。所以对于这种静态页面,只能通过状态码来判断内容是否发生了变化。

  这个状态码是304(Not Modified),这个代码的解释是“如果客户端发送一个有条件的GET请求并且请求被允许,并且文档的内容(自上次访问或根据请求的条件) ) ) 没有改变,服务器应该返回这个状态码”。显然通过这个解释,我们了解了它的实现机制。我们要做的就是在发送请求的时候在header中加上最后一次访问时间,然后根据服务器返回的状态码进行判断。通常,当网页发生更改时,服务器将返回状态码 200,如果没有更改,则返回 304。

  dotnet 提供了完整的网络传输 API。接下来请看具体实现方法。在这个例子中,通过访问NBS的banner page()来分别查看页面在3天前和3个月前是否发生了变化。

  需要注意的是,当网页内容没有发生变化时,会抛出异常,只能从异常信息中获取状态码。另外,当返回200状态码时,有时并不代表页面发生了变化,因为有些服务器无法识别请求中的lastModifiedSince内容。通过实际项目的实践,发现大部分静态页面内容都可以通过这种方法来判断。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线