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

时间:2020-02-13 22:25:06

标签: scrapy

我写了一个蜘蛛,可以爬行我的网站并刮擦一堆标签。我现在正在尝试使其返回在其上发现链接的URL。

例如:

www.example.com/product/123上找到

www.example.com/page/2

当scrapy从/product/123抓取信息时,我想要一个“ Scraped From”字段并返回/page/2。对于要抓取的每个URL,我想查找找到该URL的原始页面。我一直在浏览文档,似乎无法弄清楚。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用response.headers。应该有一个引荐来源标头。

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
相关问题