我正在尝试使用下面Request
的{{1}}方法,但它没有调用Scrapy
callback
。当我拨打self.link_to_problem
时,网址都正确打印,我也尝试在浏览器中打开这些网址,格式正确无误。有人可以识别代码中是否有错误吗?
print path
答案 0 :(得分:1)
即使发布的代码是正确的,你的刮刀很可能也不会工作(乍一看对我来说似乎如此)。
原因/问题:reddit.com会阻止所有没有设置User-Agent标头的客户端的请求。
默认情况下,Scrapy会发送' scrapybot'作为用户代理,因此会被阻止。
解决方案:在您的请求中设置User-Agent标头,就像真正的浏览器一样。
这可以通过在scrapy项目的settings.py文件中添加以下行来完成。
USER_AGENT = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'