python3请求库aiohttp的使用安装教程

aiohttp 就是这样一个提供异步 Web服务的库,从Python3.5版本开始,Python中加入async/await关键字,使得回调的写法更加直观和人性化。aiohttp 的异步操作借助于 async/await 关键字的写法变得更加简洁,架构更加清晰。

而前面介绍的 request 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服务器响应,直到得到响应后,程序才会进行下一步处理。其实,这个过程比较耗费时间。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等,那么爬取效率一定会大大提高。

使用异步请求库aiohttp 进行数据抓取时,会大大提高效率,下面我们来看一下这个库的安装方法。

1.相关链接

官方文档:http:/aiohttp.readthedocs.io/en/stable

GitHub: https://github.com/aio-libs/aiohttp

PyPI: https://pypi.python.org/pypi/aiohttp

aiohttp代码下载


这里推荐使用pip安装,命令如下: pip3 install aiohttp

另外,官方还推荐安装如下两个库:一个是字符编码检测库 cchardet,另一个是加速 DNS 的解析库aiodns。安装命令如下:

 pip3 install cchardet aiodns

2. 测试安装

安装完成之后,可以在 Python 命令行下测试:

$ python3

>>>import aiohttp

如果没有错误报出,则证明库已经安装好了。

最后,我们会在后面的实例中用到这个库,比如维护一个代理池时,利用异步方式检测大量代理的运行状况,会极大地提升效率。 作者:Python指路人 https://www.bilibili.com/read/cv11853167 出处:bilibili

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
aiohttp 是一个基于 asyncio 的异步 HTTP 客户端/服务器框架。它提供了异步 HTTP 请求、响应、WebSocket 和静态文件服务等功能。 以下是 aiohttp使用教程: 1. 安装 aiohttp: 可以通过 pip 安装 aiohttp: ``` pip install aiohttp ``` 2. 发送 HTTP 请求aiohttp 提供了 `ClientSession` 类,可以用来发送 HTTP 请求。 ```python import aiohttp import asyncio async def main(): async with aiohttp.ClientSession() as session: async with session.get('https://www.baidu.com') as response: print(await response.text()) asyncio.run(main()) ``` 在上面的例子中,我们创建了一个 `ClientSession` 对象,并使用 `get` 方法发送了一个 GET 请求。最后,我们打印出了响应的内容。 3. 发送 POST 请求: 我们可以使用 `post` 方法发送 POST 请求: ```python import aiohttp import asyncio async def main(): async with aiohttp.ClientSession() as session: async with session.post('https://httpbin.org/post', data={'key': 'value'}) as response: print(await response.text()) asyncio.run(main()) ``` 在上面的例子中,我们使用 `post` 方法发送了一个 POST 请求请求的数据是一个字典。 4. WebSocket 客户端: aiohttp 还提供了 WebSocket 客户端功能。我们可以使用 `ClientSession.websocket` 方法创建一个 WebSocket 客户端: ```python import aiohttp import asyncio async def main(): async with aiohttp.ClientSession() as session: async with session.ws_connect('wss://echo.websocket.org') as ws: await ws.send_str('Hello, WebSocket!') async for msg in ws: if msg.type == aiohttp.WSMsgType.TEXT: print(msg.data) elif msg.type == aiohttp.WSMsgType.ERROR: break asyncio.run(main()) ``` 在上面的例子中,我们使用 `ws_connect` 方法创建了一个 WebSocket 客户端,并发送了一条字符串。同时,我们使用异步 for 循环接收服务器返回的消息。 5. 静态文件服务: aiohttp 还可以用来提供静态文件服务。我们可以使用 `aiohttp.web.StaticFiles` 类创建一个静态文件服务: ```python from aiohttp import web app = web.Application() app.add_routes([web.static('/', '/path/to/static/files')]) web.run_app(app) ``` 在上面的代码中,我们创建了一个 `web.Application` 对象,并使用 `add_routes` 方法添加了一个静态文件服务。其中,第一个参数是 URL 前缀,第二个参数是文件系统中静态文件的路径。 以上就是 aiohttp使用教程。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值