异步协程爬取图片成功后还是报错的问题
import asyncioimport aiohttp
urls = ["https://scpic.chinaz.net/files/pic/pic9/202108/apic34745.jpg",
"https://scpic.chinaz.net/files/pic/pic9/202106/apic33089.jpg",
"https://scpic.chinaz.net/files/pic/pic9/202105/apic32801.jpg",
"https://scpic.chinaz.net/files/pic/pic9/202105/hpic3919.jpg"]
async def aiodownload(url):
name = url.rsplit("/", 1)
# print(name)
async with aiohttp.ClientSession() as session:# 这里相当于requests
async with session.get(url) as resp: # resp = requests.get()
# 请求回来后写入文件
with open(name, 'wb') as f: # 创建文件
f.write(await resp.content.read())# 读取内容是异步的,需要await挂起
print(name, "下载完成!")
async def main():
task = []
for url in urls:
task.append(asyncio.create_task(aiodownload(url)))
await asyncio.wait(task)
if __name__ == '__main__':
asyncio.run(main())
这是一个异步协程的小程序,爬取几张美女的图片,
爬取是成功的,但是同时也报错了。
RuntimeError: Event loop is closed
这是什么原因啊?
哪位前辈帮忙看看,能否修改一下,谢谢啊 asyncio.run运行aiohttp访问https必报错 是bug 不用管 kogawananari 发表于 2021-8-29 16:37
asyncio.run运行aiohttp访问https必报错 是bug 不用管
我看视频上老师讲的没有报错 啊,咋回事呢? 江湖散人 发表于 2021-8-29 16:56
我看视频上老师讲的没有报错 啊,咋回事呢?
你不用asyncio.run就不会报错asyncio.run不兼容aiohttp的c端的ssl 你跟老师的环境不一模一样,所以会有些许差别 kogawananari 发表于 2021-8-29 20:14
你不用asyncio.run就不会报错asyncio.run不兼容aiohttp的c端的ssl
谢谢啊 南归 发表于 2021-8-29 20:33
你跟老师的环境不一模一样,所以会有些许差别
谢谢你啊
你跟老师的环境不一样 清少呐 发表于 2021-8-30 19:42
你跟老师的环境不一样
哈哈,确实不一样,问题我已经解决了。谢谢你啊 江湖散人 发表于 2021-8-30 20:43
哈哈,确实不一样,问题我已经解决了。谢谢你啊
不客气
页:
[1]