2
に遅くなり、私は次の行でそれを実行すると、私は非同期的にいくつかのURLをダウンロードするスクリプトを持って、その後、連続difflibPythonのAsyncioがクロール
import asyncio
import difflib
import aiohttp
urls = ['http://www.nytimes.com/',
'http://www.time.com/',
'http://www.economist.com/']
async def get_url(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
old = await resp.text()
print('Initial -',url)
while True:
async with session.get(url) as resp1:
new = await resp.text()
print('Got -',url)
diff = difflib.unified_diff(old, new)
for line in diff:
print(line)
old = new
if __name__ == '__main__':
loop = asyncio.get_event_loop()
ops = []
for url in urls:
ops.append(get_url(url))
loop.run_until_complete(asyncio.wait(ops))
を経由して、変更のためにそれらを監視
for line in diff:
print(line)
コメント
スクリプトは期待どおりに実行され、各URLは毎秒約3回取り出されます。
行のコメントを外すと、スクリプトの実行速度が低下し、検索が連続して実行された場合よりもはるかに遅くなります。
なぜこのようなことが起こっているのかわかりませんが、difflibがジェネレータを返すことと関係がありますか?