【技巧】网页抓取爬虫类工具的监控和实现方式

优采云 发布时间: 2021-07-19 18:22

  【技巧】网页抓取爬虫类工具的监控和实现方式

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

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

  dotnet 在网络传输部分提供了完整的 API。接下来请看具体的实现方法。本例中通过访问国家统计局的banner页面()查看该页面是否在3天前和3个月前发生变化来演示。

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线