|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 python小小白哟 于 2023-7-1 09:05 编辑
代码如下:
- import aiohttp
- import asyncio
- async def fetch(session,url):
- async with session.get(url) as response:
- return await response.text(), response.status
- async def main():
- async with aiohttp.ClientSession() as session:
- html,status = await fetch(session,'https://cuiqingcai.com')
- print(f'html:{html[:100]}...')
- print(f'status:{status}')
- if __name__ == '__main__':
- loop = asyncio.get_event_loop()
- loop.run_until_complete(main())
复制代码
然后就报错了:
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host cuiqingcai.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')]
怎么忽略证书错误呢?
要忽略证书错误,你可以在创建 ClientSession 时传递 trust_env=False 参数,并使用 ssl=False 参数来禁用SSL验证。修改你的代码如下所示:
- import aiohttp
- import asyncio
- async def fetch(session,url):
- async with session.get(url) as response:
- return await response.text(), response.status
- async def main():
- connector = aiohttp.TCPConnector(ssl=False)
- async with aiohttp.ClientSession(connector=connector, trust_env=False) as session:
- html,status = await fetch(session,'https://cuiqingcai.com')
- print(f'html:{html[:100]}...')
- print(f'status:{status}')
- if __name__ == '__main__':
- loop = asyncio.get_event_loop()
- loop.run_until_complete(main())
复制代码
这样修改后,代码将禁用SSL验证,从而忽略证书错误。请注意,这样做可能会降低安全性,并且不建议在生产环境中使用。仅在特定的开发或测试场景下使用此功能。
|
|