Python Scrapy请求方法不起作用
我试图使用下面的Python Scrapy请求方法不起作用,python,web-scraping,Python,Web Scraping,我试图使用下面的Scrapy的Request方法,但它没有调用回调self.link\u to\u problem。当我调用print path时,url都打印正确,我还尝试在浏览器中打开这些url,格式正确。有人能识别代码中是否有错误吗 from scrapy.spiders import CrawlSpider, Rule from scrapy.linkextractors import LinkExtractor from scrapy.http.request import Reque
Scrapy
的Request
方法,但它没有调用回调
self.link\u to\u problem
。当我调用print path
时,url都打印正确,我还尝试在浏览器中打开这些url,格式正确。有人能识别代码中是否有错误吗
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.http.request import Request
import scrapy
def parse_item(self, response):
for link in response.xpath("//div[@id='siteTable']//div[@class='entry unvoted']/p[@class='title']/a/@href").extract():
path = "https://www.reddit.com" + str(link)
print path
yield Request(path, callback=self.link_to_problem, errback = self.error_print)
def link_to_problem(self, response):
print response
print "------------------------------------------------------------------------------------------"
即使发布的代码是正确的,您的刮板也很可能无法工作(乍一看,我觉得是这样的) 原因/问题:reddit.com阻止所有客户端的请求,这些客户端没有用户代理头集,看起来像真正的浏览器。 默认情况下,Scrapy将“scrapybot”作为用户代理发送,因此将被阻止 解决方案:像真正的浏览器一样在请求中设置用户代理头 这可以通过在scrapy项目的settings.py文件中添加以下行来完成
USER\u AGENT='Mozilla/5.0(X11;Ubuntu;Linux x86\u 64;rv:52.0)Gecko/20100101 Firefox/52.0'
是否调用了链接到问题
?你查过了吗?问问题时也要格外小心。没有调用任何链接到\u问题
,因此我认为调用请求方法可能有问题。我没有发现代码中有任何问题。请仔细查看项目设置和代码。否则,请尝试删除errback。