我正在抓取一个网站,它似乎是基于诸如标题项顺序之类的细微差别来检测爬虫,因为从一个成功的curl请求到scrapy的天真翻译被拒绝了403 Forbidden,但随后只需将dict更改为OrderedDict,它就被接受了200 OK。过了一段时间,它又变成了403,尽管curl仍然可以工作。所以我想知道是否可以检查确切的字节发送的scrappy调试目的。
curl
dict
OrderedDict
ymzxtsji1#
基于细微差别(如标题项顺序)检测爬虫Scrapy..大写标头名称(例如,从accept到Accept)和..按字母顺序排列请求标头。这个旧的(2017)scrapy问题记录在这里https://github.com/scrapy/scrapy/issues/2711到目前为止,Scrapy还没有提供内置的可能性来影响这一点。(除非尝试像它的评论中提到的TwistedHeaders._caseMappings.update这样的东西)。
accept
Accept
TwistedHeaders._caseMappings.update
1条答案
按热度按时间ymzxtsji1#
基于细微差别(如标题项顺序)检测爬虫
Scrapy..大写标头名称(例如,从
accept
到Accept
)和..按字母顺序排列请求标头。这个旧的(2017)scrapy问题记录在这里https://github.com/scrapy/scrapy/issues/2711
到目前为止,Scrapy还没有提供内置的可能性来影响这一点。(除非尝试像它的评论中提到的
TwistedHeaders._caseMappings.update
这样的东西)。