python程式碼錯誤RuntimeError: Session is closed
我在使用aiohttp庫和asyncio庫進行協程下載圖片時報出錯誤RuntimeError: Session is closed
我的程式碼如下
import aiohttp
import asyncio
async def fetch(session,url):
print('開始下載圖片:',url)
async with session.get(url,verify_ssl=False)as response:
conent = await response.content.read()
file_name = url[-16:]
with open(file_name,mode='wb')as fp:
fp.write(conent)
async def main():
async with aiohttp.ClientSession() as session:
url_list = [
'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=231146236,2859633049&fm=26&gp=0.jpg',
'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2194951532,1309127690&fm=26&gp=0.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1602084713475&di=20def259a9a44f66c1eed626732e67a2&imgtype=0&src=http%3A%2F%2Fh.hiphotos.baidu.com%2Fzhidao%2Fpic%2Fitem%2Fdc54564e9258d1090c1b7aead158ccbf6d814dea.jpg',
]
tasks = [asyncio.create_task(fetch(session,url))for url in url_list]
await asyncio.wait(tasks)
if __name__ == '__main__':
asyncio.run(main())
然後就一直報出錯誤:RuntimeError: Session is closed
後來去網上查資料發現這個錯誤應該不是伺服器的問題,而是自己程式碼塊有問題,後來我仔細看了一下自己的程式碼,發現是因為我的縮排出現了問題
然後正確的程式碼應該是
import aiohttp
import asyncio
async def fetch(session,url):
print('開始下載圖片:',url)
async with session.get(url,verify_ssl=False)as response:
conent = await response.content.read()
file_name = url[-16:]
with open(file_name,mode='wb')as fp:
fp.write(conent)
async def main():
async with aiohttp.ClientSession() as session:
url_list = [
'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=231146236,2859633049&fm=26&gp=0.jpg',
'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2194951532,1309127690&fm=26&gp=0.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1602084713475&di=20def259a9a44f66c1eed626732e67a2&imgtype=0&src=http%3A%2F%2Fh.hiphotos.baidu.com%2Fzhidao%2Fpic%2Fitem%2Fdc54564e9258d1090c1b7aead158ccbf6d814dea.jpg',
]
tasks = [asyncio.create_task(fetch(session,url))for url in url_list]
await asyncio.wait(tasks)
if __name__ == '__main__':
asyncio.run(main())
執行:
相關文章
- PyTorch出現錯誤“RuntimeError: Found dtype Double but expected Float”PyTorchError
- Windows 錯誤程式碼Windows
- MySQL 錯誤程式碼MySql
- Idea啟動專案報{dataSource-1} closed錯誤Idea
- Python 指令碼中呼叫 Java 程式時 Classpath 錯誤Python指令碼Java
- matplotlib使用時報錯RuntimeError: Python is not installed as a framework(一)ErrorPythonFramework
- MySQL:錯誤程式碼:2059MySql
- VS錯誤程式碼列
- 【Python報錯】RuntimeError: DataLoader worker (pid(s) 9764, 15128) exited unexpectedlyPythonError
- pytorch執行錯誤:RuntimeError: a leaf Variable that requires grad is being used in an in-place operationPyTorchErrorUI
- PostgreSQLjdbc錯誤程式碼對映(SQLSTATE)SQLJDBC
- 連線MYSQL 錯誤程式碼2003MySql
- 常見 HTTP 錯誤程式碼大全HTTP
- onvif soap 協議的錯誤程式碼協議
- 【ERROR】Oracle列印錯誤程式碼解釋ErrorOracle
- http代理401錯誤程式碼介紹HTTP
- 爬蟲錯誤程式碼如何解決?爬蟲
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- Python之PySnooper程式碼除錯PythonOOP除錯
- Python錯誤處理Python
- 派克斯常見錯誤程式碼詳解
- 我們正在錯誤的組織程式碼!
- 代理IP常見錯誤程式碼介紹
- Python程式設計最常見的錯誤有哪些?Python程式設計
- tasklist 遠端獲取程式報錯賬號密碼錯誤密碼
- win10寬頻連線錯誤提示錯誤程式碼為651如何解決Win10
- Java初學者容易犯的程式碼錯誤Java
- 三層登陸程式碼及錯誤集錦
- 八皇后問題的錯誤程式碼示範
- SqlServer NBU備份出現錯誤程式碼2SQLServer
- 什麼是407 Proxy Authentication Required錯誤程式碼?UI
- 遠端連線錯誤程式碼及處理
- discuz教程QQ登陸提示錯誤程式碼:2000
- python輸入錯誤密碼使用者鎖定Python密碼
- MySQL error 錯 誤 碼MySqlError
- PostgreSQL error 錯誤碼SQLError
- 錯誤碼規範
- 解決 Python UnicodeEncodeError 錯誤PythonUnicodeError