爬虫小细节—请求缓存(Cache-Control)问题

不知道大家有没有遇到过这样一个小问题:第一次打开页面抓包分析相关地址是正常的,后面刷新或者再打开的时候,状态码就变成了304,这样再去采集的时候就不会采集到数据了。
可以通过一个地址来看一下:


小例子

如果你已经遇到过次问题的话,马上就可以想到问题所在了:就是用Cache-Control控制的缓存:

Cache-Control是控制缓存的开关,用于标识请求或访问中是否开启了缓存,使用了哪种缓存方式。

我们模拟请求头,在请求发出时,一般的网站大都设置Cache-Control为no-cache,也有一些为了处理相同的请求,服务器不会再一次发送资源,所以将Cache-Control设置为max-age=0也就是上图小例子中的值。只要将它的设置改为no-cache或者干脆不写这个值,这样就不会发生采集错误的问题了。
所以,我们在采集程序中模拟请求头的时候,header里面的内容还是要去分析看一下,搞明白每个字段的意思。

你可能感兴趣的:(爬虫小细节—请求缓存(Cache-Control)问题)