代碼如下:
def parse(self, response):
for node in response.xpath('//*').extract():
handlenode(node)
for url in response.xpath('//a/@href').extract():
url = urljoin_rfc('http://www.****.com/',url)
yield scrapy.Request(url, callback=self.parse)
這里面的最后一行中的回調函數(shù)就是本身的parse.
那么。我現(xiàn)在有一個需求。 就是在第二個for循環(huán)中,我需要加一個 count計數(shù)。 這個時候,
1. 如果我count定義在當前類變量,然后再for 循環(huán)中count++ ,那么回調過后變量count好像會再初始化一次。count++就沒有意義。
2. 如果count在parse中定義。那么好像還是有每次回調都重新初始化一次的問題。
請問一下在這里for循環(huán)計數(shù)要怎么實現(xiàn)呢。
2 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
你可以用閉包來實現(xiàn),大概思路如下:
def out():
class data:
count = 0
def inner(l):
for i in l:
data.count += 1
print data.count
return inner
f = out()
f([1,2,3])
f([23,34,3,43,4])
可以用一個全局的變量來標記

MM們
TA貢獻1886條經驗 獲得超2個贊
因為框架對返回的數(shù)據(jù)有做處理,所以改成閉包的格式顯得大動干戈。 這個需求我主要是想通過count的計數(shù)來降低調用的頻率?,F(xiàn)在我用另一個辦法來代替,就是用當前時間來參考哈。這就相當于是一個全局變量了。
添加回答
舉報
0/150
提交
取消