Scrapy 有没有一种方法可以获取从中刮取链接的URL?

Scrapy 有没有一种方法可以获取从中刮取链接的URL?,scrapy,Scrapy,我有一只蜘蛛在我的网站上爬行,并抓取了一堆标签。我现在试图让它返回发现链接的URL 例如: www.example.com/product/123可在www.example.com/page/2上找到 当scrapy从/product/123中刮取信息时,我希望有一个“刮取自”字段,并返回/page/2。对于每个被刮取的URL,我希望找到找到该URL的原始页面。我一直在翻文件,似乎弄不明白。任何帮助都将不胜感激 最简单的方法是使用response.headers。应该有一个referer标题 r

我有一只蜘蛛在我的网站上爬行,并抓取了一堆标签。我现在试图让它返回发现链接的URL

例如:

www.example.com/product/123
可在
www.example.com/page/2
上找到


当scrapy从
/product/123
中刮取信息时,我希望有一个“刮取自”字段,并返回
/page/2
。对于每个被刮取的URL,我希望找到找到该URL的原始页面。我一直在翻文件,似乎弄不明白。任何帮助都将不胜感激

最简单的方法是使用response.headers。应该有一个referer标题

referer = response.headers['Referer']
您还可以使用meta将信息传递到下一个URL

def parse(self, response):
    product_url = response.css('#url').get()
    yield scrapy.Request(product_url, callback=self.parse_product, meta={'referer': response.url})

def parse_product(self, response):
    referer = response.meta['referer']
    item = ItemName()
    item['referer'] = referer
    yield item

我在下面更新了我的答案。您应该能够通过response.headers['Referer']获取上一个URL,如果没有,您可以将其与meta一起传递。我会先试试第一种方法,然后再试试第二种。我现在就试试。非常感谢!我也在试着用另一种方法。为了到达链接,获得它所遵循的爬网路径是很酷的。我会让你知道事情的最新进展!看起来推荐人并不像你建议的那样包含在ResponseId中。工作得很有魅力。最后对其进行了一点修改,以便记录整个爬网路径。很高兴我能为您解决此问题。但你会发现自己在很多情况下需要通过meta传递信息。在这种情况下,您可以从头中获取它,但通常需要获取令牌和其他信息,并将其传递给下一个请求。Meta获取一个字典,在下一个请求中,您可以在其中传递所需的任何信息。