首先,我的代码在这里:
import schedule # see https://github.com/dbader/schedule
import crawler
def job():
print("Start my scheduled job...")
cw.run()
if __name__ == "__main__":
cw = crawler.crawler()
print("Initial crawling...")
cw.run()
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
for title, link in zip(cw.titles, cw.links):
print("%s[%s]" % (title, link))
在while
循环中,我只想在预定作业完成后才执行for
循环。
但是,for
环路正在无限运行。
我知道为什么。但是我不知道如何修复它。
任何人可以帮我吗?
这个
怎么样?def job():
print("Start my scheduled job...")
cw.run()
for title, link in zip(cw.titles, cw.links):
print("%s[%s]" % (title, link))
if __name__ == "__main__":
cw = crawler.crawler()
print("Initial crawling...")
cw.run()
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
我刚将for
循环移至job()
。
我确定有更好的方法,但是只将for
循环放入函数中,然后将schedule.run_pending()
作为虚拟参数传递到其中。这样:
def foo(dummy):
for title, link in zip(cw.titles, cw.links):
print("%s[%s]" % (title, link))
while True:
foo(schedule.run_pending())
我尚未测试此代码,但我认为它应该起作用。祝你好运。