>  기사  >  백엔드 개발  >  如何使用爬虫监控一系列网站的更新情况?

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

WBOY
WBOY원래의
2016-06-06 16:22:494439검색

我现在想到的方法只有每天自动把网站爬下来 然后对比新旧网站的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,如果相同,则页面没有
跟新,否则网页就有跟新。 可以使用网站资讯监控工具,非常符合你的要求
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.