Scrapy请求优先级为循环

问题描述 投票:1回答:1
    for each in player_url:
        yield scrapy.Request(each, callback=self.player_data2, priority=1)
    yield scrapy.Request(match_data.get('table_url'), callback=self.parse_table_url)

这是行不通的

在没有完成forloop的情况下,下一个请求被称为

python scrapy
1个回答
0
投票

你的代码正在生成 scrapy.Request 在for循环中以相同的优先级(优先级1)处理。如果你希望第一个请求先被处理,那么就分配不同的优先级。

检查下面。

priority = -1
for each in player_url:
    yield scrapy.Request(each, callback=self.player_data2, priority=priority)
    priority -= 1 # so that next request gets lesser priority
yield scrapy.Request(match_data.get('table_url'), callback=self.parse_table_url, priority=priority) # Assiging priority to this also so that this gets executed at last

负数可以用来表示较低的优先级.希望这对你有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.