当我试图抓取http://www.brand-in-trend.ru时,我遇到了一个让步问题。如下所示,我正在使用Scrapy并定义了一个Basespider。第一个解析器工作得非常好,并返回start_url上找到的所有品牌。
现在,当我想向类别解析器提供回调请求时,我没有得到响应也没有错误。蜘蛛刚退出。
蜘蛛:
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
我已尝试以下方法来解决此问题:
如果有人遇到类似的问题,我会很乐意提供解决方案或建议
提前致谢
Ĵ
答案 0 :(得分:1)
这是因为你设置了:
allowed_domains = [ 'trend-in-brand.ru' ]
但是,您正在从其他域抓取网址:
start_urls = [ 'http://brand-in-trend.ru/brands/' ]
请参阅trend-in-brand
vs brand-in-trend
。