aiohttp 是一个用于 Python 编程语言的异步 HTTP 客户端和服务器库。它基于 Python 的 asyncio 库,允许你编写高效、非阻塞的网络代码。aiohttp 支持异步编程,使得在处理 I/O 密集型任务(如网络请求)时可以更高效地利用系统资源。
你可以使用 pip 来安装 aiohttp:
pip install aiohttp
以下是如何进行异步 HTTP 请求的示例:
import aiohttp
import asyncio
async def download(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
html = await download(session, 'http://python.org')
print(html)
if __name__ == '__main__':
asyncio.run(main()) # 运行事件循环
注意事项:
1、获取结果:
text = await resp.text()
或者
content = await resp.content.read()
2、使用已有cookie
(1)不能直接用http.cookiejar.CookieJar对象,要用aiohttp.CookieJar对象,但是转换好麻烦
(2)直接在headers添加已有cookie
cookie_str=''
for cookie in cookiejar:
cookie_str+='{}={};'.format(cookie.name,cookie.value)
headers['Cookie']=cookie_str
3、使用代理
from aiohttp_socks import ProxyConnector
proxies = 'http://127.0.0.1:8888' # 代理ip和端口号,要指定协议
async with aiohttp.ClientSession(connector=ProxyConnector.from_url(proxies)) as session: