Scrapy crawler中的url不会让渡给下一个par

2024-05-16 20:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试图爬行时遇到了一个屈服问题。正如您在下面看到的,我使用了Scrapy并定义了一个Basespider。第一个解析器工作得非常好,并返回在start\u url上找到的所有品牌。在

现在,当我想将回调请求交给categories解析器时,既没有得到响应也没有错误。蜘蛛就不干了。在

蜘蛛:

class brandintrend(BaseSpider):
name = "brandintrend"

allowed_domains = [ 'trend-in-brand.ru' ]

start_urls      = [ 'http://brand-in-trend.ru/brands/' ]

def parse(self, response):
    hxs         = HtmlXPathSelector(response)
    brands      = hxs.select('//div[@class="brandcol"]/ul/li/a/@href').extract()

    for brand in brands:
        brand = "http://www.brand-in-trend.ru" + brand
        print brand
        # request = Request(brand, callback=self.categories)
        yield Request(brand, callback=self.categories)

def categories(self, response):
    print "Hello World"
    hxs = HtmlXPathSelector(response)
    print response.url

我已经尝试了以下方法来解决这个问题:

  1. 我在Chrome(Javasript关闭)中测试了生成的品牌url(例如http://www.brand-in-trend.ru/brands/parker/),它们工作得很好。在
  2. 我把所有生成的品牌url放在start_url列表中,并尝试直接将它们交给categories解析器
  3. 我看了这篇文章,不幸的是没有解决我的问题:scrapy unable to make Request() callback

如果有人遇到类似的问题,我将非常乐意为您提供解决方案或建议

提前谢谢

J


Tags: inselfhttp解析器urlresponserustart