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

aiohttp就是这样一个提供异步Web服务的库,从Python 3.5版本开始,Python中加入了async/await关键字,使得回调的写法更加直观和人性化。aiohttp的异步操作借助于async/await关键字的写法变得更加简洁,架构更加清晰。使用异步请求库进行数据抓取时,会大大提高效率,下面我们来看一下这个库的安装方法。

1. 相关链接

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

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

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

2. pip安装

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

pip3 install aiohttp

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

pip3 install cchardet aiodns

3. 测试安装

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

12    $ python3
>>> import aiohttp

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

4. 结语

我们会在后面的实例中用到这个库,比如维护一个代理池时,利用异步方式检测大量代理的运行状况,会极大地提升效率。

来源:华为云社区  作者:崔庆才丨静觅

【Python3网络爬虫开发实战】1.2.6-aiohttp的安装相关推荐

  1. 【Python3网络爬虫开发实战】1.3.4-tesserocr的安装

    在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们可以直接用OCR来识别. 1. OCR OCR,即Optical Character Recognition,光学字符 ...

  2. 【Python3网络爬虫开发实战】1.7.3-Appium的安装

    [摘要] Appium是移动端的自动化测试工具,类似于前面所说的Selenium,利用它可以驱动Android.iOS等设备完成自动化测试,比如模拟点击.滑动.输入等操作,其官方网站为:http:// ...

  3. 【Python3网络爬虫开发实战】 1.7.1-Charles的安装

    [摘要] Charles是一个网络抓包工具,相比Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具. 1. 相关链接 官方网站:https://www.ch ...

  4. 【Python3网络爬虫开发实战】1.5.3-redis-py的安装

    [摘要] 对于Redis来说,我们要使用redis-py库来与其交互,这里就来介绍一下它的安装方法. 1. 相关链接 GitHub:https://github.com/andymccurdy/red ...

  5. 【Python3网络爬虫开发实战】1.5.2-PyMongo的安装

    [摘要] 在Python中,如果想要和MongoDB进行交互,就需要借助于PyMongo库,这里就来了解一下它的安装方法. 1. 相关链接 GitHub:https://github.com/mong ...

  6. 【Python3网络爬虫开发实战】1.5.1-PyMySQL的安装

    [摘要] 在Python 3中,如果想要将数据存储到MySQL中,就需要借助PyMySQL来操作,本节中我们介绍一下它的安装方式. 1. 相关链接 GitHub:https://github.com/ ...

  7. 【Python3网络爬虫开发实战】1.3.3-pyquery的安装

    pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便.本节中,我们就来了解一下它的安装方式. 1. 相关链接 GitHub:h ...

  8. 【Python3网络爬虫开发实战】1.3.1-lxml的安装

    [摘要]lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高.本节中,我们了解一下lxml的安装方式,这主要从Windows.Linux和Mac三 ...

  9. 【Python3网络爬虫开发实战】 1.2.2-Selenium的安装

    [摘要]Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击.下拉等操作.对于一些JavaScript渲染的页面来说,这种抓取方式非常有效.下面我们来看看Seleniu ...

最新文章

  1. java 对象被回收的例子_Java对象的后事处理——垃圾回收(二)
  2. MyBatis-Spring配置简单了解
  3. Linux系统 proc self,Linux内核源代码情形分析-特殊文件系统/proc-对/proc/self/cwd的访问...
  4. kmp2-HDU1358 HUST1010 POJ2406 POJ2752
  5. 块编码、对象编码、小波编码、分布式编码【转贴】
  6. [多图]Google Chrome漫画书中文版
  7. Spring Boot整合Swagger3注解@ApiImplicitParam的paramType属性为“path“
  8. vue 组件需要注意的事项:
  9. a(n+1) = f[a(n)] 型递推数列的迭代作图(玩计算器玩出了问题)
  10. 美国大学计算机学科分类
  11. 浅谈line-height 1
  12. python爬取百度迁徙数据_python爬虫-动态爬取百度迁徙
  13. Centos7安装MySQL客户端工具
  14. 2020我国夏季洪涝主要受灾区卫星影像记录
  15. Hello Ragel -- 生成状态机的神器
  16. 迅雷手机版苹果版_手机迅雷安卓版下载2019_迅雷手机版下载最新版
  17. php 7.4 编译安装
  18. html怎么做成正方形符号,javascript – Highcharts:使图例符号为正方形或矩形
  19. 水生植物拉丁文及缩写
  20. keras教程_Keras教程

热门文章

  1. s8 android10,旧机不是部部有 三星 Galaxy S8 将不会获得 Android 10 更新
  2. java 网页通讯_Vue+Java 通过websocket实现服务器与客户端双向通信操作
  3. python类class定义_python基础教程之类class定义使用方法
  4. Linux. C语言中else,2. if/else语句
  5. 为同一个元素绑定多个不同的事件,并指向相同的事件处理函数方法
  6. css :after和:before
  7. 图论——图的遍历(洛谷 P3916)
  8. mysql between 等于_MySQL中BETWEEN子句的用法详解
  9. MogDB数据库安装部署之xlog目录设置
  10. 《数据资产管理实践白皮书(5.0版)》正式发布,附下载链接