request去重和随机user-agent、referer
来源:10-6 scrapy-redis源码剖析-dupefilter.py-
Pythonist
2017-12-02
老师好,
scrapy源码中对request去重是根据request中'method+url+body+header'进行sha1计算,如果是同一个url,但使用了随机User-agent导致header不一样,那么是不是就不能去重呢?或者即使同一User-agent,不断爬取时同一URL的referer也会不一样导致header不一样。
如果是分布式爬取知乎,在不同机器上使用不同账号登录,那么cookies不一样header也会不一样,还能不能对同一URL去重呢?
写回答
1回答
-
bobby
2017-12-04
这个问题问的很好, 理论上是这样的 但是你可以看看request_fingerprint这个函数的源码里面有个参数指明是否需要通过header去重, 默认是不通过这个的, 所以默认情况下是不会添加header去计算hash的 你也可以设置加入这个, 如果你还有更进一步的定制你就可以去重写一个计算指纹的方法就行了
222021-08-25
相似问题