Python 刮擦请求优先级forloop

Python 刮擦请求优先级forloop,python,scrapy,Python,Scrapy,这不起作用 如果不完成forloop,则调用下一个请求您的代码正在生成for循环中具有相同优先级(优先级1)的scrapy.request。如果您希望首先处理第一个请求,则分配不同的优先级 检查以下内容: for each in player_url: yield scrapy.Request(each, callback=self.player_data2, priority=1) yield scrapy.Request(match_data.get('tab

这不起作用


如果不完成forloop,则调用下一个请求

您的代码正在生成for循环中具有相同优先级(优先级1)的
scrapy.request。如果您希望首先处理第一个请求,则分配不同的优先级

检查以下内容:

    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)
负数可以用来表示较低的优先级。
希望这有帮助

您的代码正在for循环中生成具有相同优先级(优先级1)的
scrapy.Request
。如果您希望首先处理第一个请求,则分配不同的优先级

检查以下内容:

    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)
负数可以用来表示较低的优先级。
希望这有帮助

你确定吗?因为首先执行for循环是预期的行为。玩家url很可能是空的。@HNMN3
player\u url
不是空的,已确认,
len
也是固定的,但循环会随机执行,然后执行下一个请求好的,我知道了。如果您希望循环外请求只在循环中的所有请求都处理完毕后发生,您需要从为这些循环请求执行的最后一次回调中生成该请求。这并不简单,您需要在类变量中跟踪接收到的响应数量,并且需要确保在循环请求得到错误响应的情况下处理错误回复。如果不需要这些循环请求异步发生,你也可以选择这样的方式,你确定吗?因为首先执行for循环是预期的行为。玩家url很可能是空的。@HNMN3
player\u url
不是空的,已确认,
len
也是固定的,但循环会随机执行,然后执行下一个请求好的,我知道了。如果您希望循环外请求只在循环中的所有请求都处理完毕后发生,您需要从为这些循环请求执行的最后一次回调中生成该请求。这并不简单,您需要在类变量中跟踪收到的响应数量,并且需要确保在循环请求得到错误响应的情况下处理errbacks。如果您不需要这些循环请求异步发生,您也可以使用类似“不工作bro,循环执行8次,而不是11次是,在继续下一个请求之前,需要执行11次循环。如果没有,总会有错误。太好了!祝你好运,伙计!没有工作bro,循环执行了8次,而不是11次是,循环需要执行11次才能继续下一个请求。如果没有,总会有错误。太好了!祝你好运,伙计!