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的情况下,下一个请求被称为
你的代码正在生成 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
负数可以用来表示较低的优先级.希望这对你有帮助!