scrapy项目管道中spider的访问响应

2024-09-30 10:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有蜘蛛样的

class ProductsSpider(scrapy.Spider):
    name = "products"
    allowed_domains = ["example.com"]
    start_urls = [
        'http://example.com/url'
    ]

    def parse(self, response):

我有一个像这样的管道类

^{pr2}$

但我想在parse_item函数中获取parse函数的响应参数,而不将其设置为item对象的属性,这可能吗


Tags: 函数namecomparseexampleitemstartclass
1条回答
网友
1楼 · 发布于 2024-09-30 10:37:41

不,不可能。在

响应不会转发到管道。您要么必须将响应存储在项中,要么使用一些外部存储来存储响应并在管道中获取它。第二种方法要好得多,它可以避免将响应存储在项目中而导致的许多问题(例如内存问题)。例如,在parse callback中保存对某种形式存储的响应,在item字段中保存对此存储的引用,并从管道中的存储获取响应。在

但这实际上取决于您要做什么,响应在spider middleware process_spider_output中是可用的,所以也许您可以使用它来代替处理管道中的项。在

相关问题 更多 >

    热门问题