Python-Scrapy:通过另一个函数产生一个定义在一个函数中的变量名

维沙尔·夏尔马

在 parse 函数中将一个变量声明为“self.Title”并通过另一个函数产生数据后,它只返回一个 URL 的数据,而其他所有 URL 的数据可能会出错。这是代码片段。

import scrapy
from scrapy.http import Request

class TestSpider(scrapy.Spider):
    name = 'Test'
    allowed_domains = ['example.com']
    start_urls = ['https://example.com/search?q=com.foo', 'https://example.com/search?q=bar', 'https://example.com/search?q=data']

    def parse(self, response):

        self.Title = response.xpath('//*[@class="search-title"]/a/text()')[0].extract()
        Ini_Url = response.xpath('//*[@class="search-title"]/a/@href')[0].extract()
        Ab_url = "https://example.com" + Ini_Url + "/download?from=details"
        yield Request(Ab_url, callback=self.parse_download)

    def parse_download(self, response):
        Download_URL = response.xpath('//*[@class="fdownload-box"]/p[2]/a/@href')[0].extract()

        yield{"Download_URL": Download_URL, "Title": self.Title}

并且输出就像所有 3 个抓取的 URL 的 Download_URL 都不同,但标题虽然不同,但对于所有 3 个请求都相同。

杰施努尔

您不能在 Spider 类的实例上存储每项数据。

parse产生 时Request,传递您的Titleas metadata,如文档中所述然后就可以parse_downloadresponse.meta物业中使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在另一个函数中访问一个函数内部的Python变量

使用Python在另一个函数中使用一个函数中的变量

Python:在另一个函数中定义一个函数

从python中的另一个函数调用变量

如何从python中的另一个文件访问构造函数中定义的变量

在python中使用一个函数的变量到另一个函数

Python从另一个函数调用一个函数中的函数

如何在Python中从另一个函数调用一个函数中的一个函数?

python访问另一个函数变量错误

python - 从另一个函数调用变量

Python 在另一个函数中使用变量

如何在另一个函数中的一个python函数中访问变量

Python:从另一个函数中调用一个函数

Python如何在另一个函数中模拟一个函数

Python模拟补丁另一个函数中的一个函数

Python模拟补丁另一个函数中的一个函数

如何在python中的另一个函数中使用一个函数

Python在另一个函数中调用一个函数

在Python(Django)中将一个函数调用到另一个函数中

Python从类中的另一个函数调用一个函数

Python:如何在另一个函数中包含一个函数?

Python错误?等价函数-变量溢出一个,但另一个不溢出

如何在另一个python函数中执行一个python文件?

从Python中的另一个文件调用函数

从另一个文件中调用Python函数

在另一个函数中调用列表 - Python

在 Python 中通过另一个函数传递函数参数

Python 3从另一个函数更改函数中的变量

在一个文件中创建一个函数并从另一个文件访问它 - Python