Scrapy 如何在输出中添加 "query url" 作为项目

Scrapy how to add the "query url" as item in the output

我有一个 url 的列表,我将它们作为 start_urls 导入到一个 scrapy 项目中。 我想在输出中添加生成这些结果的查询 (url)。 例如,如果我有 “第一个标题结果”、“地址”等 ----> URL 生成此输出的人。

这是我的代码

import scrapy
from scrapy import Request

class GmapsclosedlocationsSpider(scrapy.Spider):
    name = 'gmapsclosedlocations'
    allowed_domains = ['https://www.google.com']
    
    with open('urls.csv') as file:
        start_urls = [line.strip() for line in file]

    def start_request(self):
        request = Request(url=self.start_urls, callback=self.parse)
        yield request

    def parse(self, response):
        yield {
            'name' : response.css('.qrShPb').extract(),
            'closed' : response.css('p.wlxxf::text').extract(),
            'address' : response.css('.LrzXr::text').extract(),
            'phone' : response.xpath('//*[contains(text(), "+46")]').extract_first(),
            'website' : response.css('a.ab_button::attr(href)').extract(),
            'firsttitle' : response.css('.DKV0Md::text').extract_first()
        }

我想在“yield”中添加一个新项目,添加 url 但我不知道该怎么做 谢谢!

只需使用 response.url 方法获取 yield 关键字中的每个当前 url,如下所示:

def parse(self, response):
        yield {
            'name' : response.css('.qrShPb').extract(),
            'closed' : response.css('p.wlxxf::text').extract(),
            'address' : response.css('.LrzXr::text').extract(),
            'phone' : response.xpath('//*[contains(text(), "+46")]').extract_first(),
            'website' : response.css('a.ab_button::attr(href)').extract(),
            'firsttitle' : response.css('.DKV0Md::text').extract_first(),
            'url': response.url}