最近,我正在看python aiohttp库,在它周围玩耍,并与python请求进行比较。这是代码:
import aiohttp
import asyncio
import requests
request_url = 'http://www.baidu.com'
requests_resp = requests.get(request_url)
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
aio_resp = await fetch(session, request_url)
print('aio_resp_length =', len(aio_resp))
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
print('requests_resp_length = ', len(requests_resp.text))
响应长度差异很大
aio_resp_length = 152576
requests_resp_length = 2381
不确定aiohttp.session.get中会发生什么,但是结果并不总是这样。当您将requests_url更改为http://www.example.com
时,
响应长度是相同的。有人可以告诉我这里发生了什么事吗?
欢呼
答案 0 :(得分:0)
因为aiohttp的响应中包含换行符,而请求中没有换行符。
您可以像这样检查自己的回复
print('requests_resp_length = ', requests_resp.text[0:100])
print('aio_resp_length =', aio_resp[0:100])