-1
forループでコードを取得しましたが、これは問題なく動作します。しかし、私はwhileループを実装するのに苦労しています。空のjsonオブジェクトが得られているように見えます。jsonオブジェクトが{data:[]、 "result": "ok"}になることを念頭に置いて、どのように '働きながら'得ることができますか?whileループを使ってAjaxを処理する
マイwhileループ
def after_login(self,response):
if "smg" in response.body:
#for i in range(0,100,10):
minime = 2
i = 10
while len(self.parse_firstcall(response)['data']) > 1 or minime > 1:
print('------------------------------------')
print(len(self.parse_firstcall(response)['data']))
print(str(minime))
print(str(i))
print('-------------------------------------')
yield FormRequest(
url='URL',
formdata={'act': 'serial', 'type': 'search', 'o': str(i), 's': '3','t': '0'},
callback=self.parse_firstcall
)
minime = 0
i += 10
time.sleep(5)
def parse_firstcall(self,response):
try:
firstc = response.body
self.serialj = json.loads(firstc)
except:
self.serialj = {"data":['why', 'always', 'me'], "result": "ok"}
return self.serialj