Heim  >  Artikel  >  Backend-Entwicklung  >  如何使用爬虫监控一系列网站的更新情况?

如何使用爬虫监控一系列网站的更新情况?

WBOY
WBOYOriginal
2016-06-06 16:22:494438Durchsuche

我现在想到的方法只有每天自动把网站爬下来 然后对比新旧网站的HTML文件 才决定有没有更新

回复内容:

1 第一次先请求某个网页,抓取到本地,假设文件名为 a.html。这时文件系统有个文件的修改时间。

2 第二次访问网页,如果发现本地已经有了 a.html,则向服务器发送一个 If-Modified-Since 的请求(w3.org/Protocols/rfc261)。 把 a.html 的修改时间写到请求里。

3 如果网页更新了,服务器会返回一个 200 的应答,这时就重新抓取网页,更新本地文件。

4 如果网页没有更新,服务器会返回一个304的应答。这时就不需要更新文件了。 这个问题已经有人做出现成产品了,你可以看一下:
sleepingspider.com
注册成为用户后,可以选择需要关注的网页,如有更新会收到邮件提醒。还有一些高级的设置,没用过,你可以看看 我的本科毕设就是这个。。
当时做了一套监控果库、想去、花瓣市集、暖岛的服务。

实现方式:
1. crontab 定时任务
2. node 读取配置并调用 phantomjs(内存型浏览器) 访问各链接并存图。
3. 所有图片用日期分文件夹命名,用 Bootstrap 做个对比显示。

如果有这样一套服务,我觉得挺好的。
不过付费率可能是个问题。 也许用git对扒下来网页做版本控制也行吧? 我歪个楼
chrome有个Page Monitor的插件 使用MD5数字签名
每次下载网页时,把服务器返回的数据流ResponseStream先放在内存缓冲区,然后对
ResponseStream生成MD5数字签名S1,下次下载同样生成签名S2,比较S2和S1,如果相同,则页面没有
跟新,否则网页就有跟新。 可以使用网站资讯监控工具,非常符合你的要求
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn