请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

request去重和随机user-agent、referer

老师好,

scrapy源码中对request去重是根据request中'method+url+body+header'进行sha1计算,如果是同一个url,但使用了随机User-agent导致header不一样,那么是不是就不能去重呢?或者即使同一User-agent,不断爬取时同一URL的referer也会不一样导致header不一样。

如果是分布式爬取知乎,在不同机器上使用不同账号登录,那么cookies不一样header也会不一样,还能不能对同一URL去重呢?

正在回答 回答被采纳积分+3

1回答

bobby 2017-12-04 10:52:46

这个问题问的很好, 理论上是这样的 但是你可以看看request_fingerprint这个函数的源码里面有个参数指明是否需要通过header去重, 默认是不通过这个的, 所以默认情况下是不会添加header去计算hash的 你也可以设置加入这个, 如果你还有更进一步的定制你就可以去重写一个计算指纹的方法就行了

2 回复 有任何疑惑可以回复我~
  • 请问老师一下,scrapy发送请求的body具体包括什么呢?meta算吗?,callback算吗?cookies算吗?
    回复 有任何疑惑可以回复我~ 2021-08-24 15:11:55
  • bobby 回复 Mr_青先森 #2
    body内容和http协议的内容是一样的,你这里问的应该是指指纹算法用到了哪些吧 https://blog.csdn.net/weixin_42078760/article/details/105312651 你可以看看这个
    回复 有任何疑惑可以回复我~ 2021-08-25 11:51:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信