我的代码想要通过count来计数,然后通过callback来调用tmp方法
本来想做的是每次循环,urls与topic_id一一对应,然后发出request到下一个方法中,但是,我下面的代码的结果是,先循环玩count一直到最后,然后才调用callback,并且传入的参数为topic_ids[0],是第一个,我不太理解callback,请指教~
count = 0
# print topic_ids
for u in urls:
# print u
# print topic_ids[count]
yield scrapy.Request(
url=self.zhihu_topics_url + u,
# url = "https://m.zhihu.com/topics#物理学",
headers=headers,
meta={
"proxy": proxy,
"cookiejar": response.meta["cookiejar"],
"topic_id": topic_ids[count],
},
callback=self.tmp)
count +=1
print count
def tmp(self, response):
print "topic_id: " + response.meta['topic_id']
콜백 함수 문제는 아닌 것 같습니다
프로그램이 논블로킹(non-blocking)이기 때문에 먼저 루프를 완료한 후 네트워크 io를 기다리고 데이터를 캡처한 후 콜백 함수를 실행해야 합니다.