Rumah  >  Artikel  >  pembangunan bahagian belakang  >  如何使用爬虫监控一系列网站的更新情况?

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

WBOY
WBOYasal
2016-06-06 16:22:494439semak imbas

我现在想到的方法只有每天自动把网站爬下来 然后对比新旧网站的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,如果相同,则页面没有
跟新,否则网页就有跟新。 可以使用网站资讯监控工具,非常符合你的要求
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn