一个网页是否更新,是很多爬虫开发人员都会碰到的问题,如果只是一次性抓取来使用,那这个问题无关紧要,抓一遍完事,但是工程中的爬虫通常需要长期运行,如果内容更新,需要及时抓取。
思路1:定期抓取
这是一个常见的获取更新内容的思路,这种方式无状态,傻瓜式的,我并不需要知道网页到底更新哪些内容,我只要每次拿网页的内容去数据库里去重插入即可。 这种思路问题就是浪费资源。无论对方更新没有,都得去抓取一遍。
思路2:RSS订阅
RSS(简易信息聚合),一种基于XML格式的内容包装和投递协议,可以用于同步网页内容,目前适用于博客,新闻等。 这种思路问题是并不是所有网站都提供RSS源的,虽说有万能的rsshub,但是rsshub也是需要开发人员自己去维护的。
思路3:If-Modified-Since 状态码
If-Modified-Since: 允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified )维基百科,