Skip to main content
 首页 » 编程设计

python之循环中的 Scrapy 调用请求

2025年05月04日14java哥

我想删除一个网页,其中包含带有过滤选项的组合框。 基本 url 相同,但请求负载取决于所选的组合框值。我有一个可用选项列表,并且我创建了一个循环来遍历组合框值并执行请求。代码如下:

def parse_product_lines(self, response): 
    options = json.loads(response.body_as_unicode()) 
    product_lines = options['products'] 
 
    for product_line in product_lines: 
        payload = self.prepare_payload(product_line) 
 
        scrapy.Request('http://example.com', 
                       method="POST", 
                       body=urllib.urlencode(payload), 
                       callback=self.parse_items) 
 
def parse_items(self, response): 
    print response 

,但是请求没有被执行。有人知道那里发生了什么吗?

请您参考如下方法:

首先,Spider 类默认使用方法parse。

每个回调应该返回一个Item 或一个dict,或一个迭代器。

您应该在 parse_product_lines 方法中yield request 来告诉 scrapy 下一步处理。