網絡爬蟲(十三)

協程移步執行

主要注意:
  • 當作任務執行的函數前面要加async修飾。async def req(url):
  • 生成協程任務用: task=asyncio.ensure_future(c)
  • 放入的任務要用asyncio.wait(tasks)才能實現異步執行
    loop=asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))

import time
tasks=[]
urls=['url1','url2','url3','url4']
async def req(url):
print('start')
asyncio.sleep(2)#這是異步執行語句
#time.sleep()#這是同步執行語句,所以不能用這種語句
print('end')
for url in urls:
c=req(url)
task=asyncio.ensure_future(c)
tasks.append(task)
loop=asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章