我正在尝试从许多解析函数构建一个项目,因为我从多个 url 获取数据,我尝试迭代一个字典(我使用 2 个 for 循环构建),这就是为什么使用 2 个 for 循环来获取生成 URL 所需的变量然后对于每个变量,我调用第二个解析函数传递所需的 URL,这是我想从我的主解析中调用第二个解析函数的地方
for r in [1,2]:
for t in [1,2]:
dataName = 'lane'+str(r)+"Player"+str(t)+"Name"
dataHolder = 'lane'+str(r)+"Player"+str(t)
nameP = item[dataName]
print('before parse ==> lane = ' + str(r) + " team = " + str(t))
urlP = 'https://www.leagueofgraphs.com/summoner/euw/'+nameP+'#championsData-soloqueue'
yield Request( urlP, callback=self.parsePlayer , meta={'item': item , "player" : dataHolder} )
我正在使用这些 prints() 在输出中查看我的代码在我的第二个解析函数中是如何执行的,如下所示
def parsePlayer( self , response ):
item = response.meta['item']
player = response.meta['player']
print('after parse ====> ' + player)
mmr = response.css('.rank .topRankPercentage::text').extract_first().strip().lower()
mmrP = player+"Mmr"
item[mmrP] = mmr
# yield item after the last iteration
(我知道我没有解释代码中的每一个细节,但我认为它不需要看到我的问题,而不是在你看到从这些打印中得到什么之后)
也出于某种原因,每次我运行 spyder 时,我都会得到不同的随机打印顺序,这很令人困惑,我认为这是关于yield
我希望有人能帮助我的问题