小编玩Python大概是3-4年前,那个时间爬虫非常流行,到处都是爬虫的文章和视频,很多人入门Python都是从爬虫开始。几乎所有学Python都知道requests这个库,它大名鼎鼎K神的得意之作,非常好用。

但是随时Python异步async的大流行,由于requests本身是阻塞的导致在使用异步的时候有些捉襟见肘。今天小编来推荐一个牛逼的库,可以同时支持同步和异步的请求,一箭双雕,一起来看一下。

这个是库就是httpx,收获了5200颗星,号称是Python下一代的HTTP客户端,能够同时支持http同步和异步的请求,非常牛逼,我们快速来看一下。

01.如何安装

直接用pip install httpx 即可,非常方便

02.快速使用

同步的http请求:

这个get用法很简单,跟requests库非常相似

异步的请求:

直接和Python内置的asyncio库进行组合使用,进行异步请求。

还有一种就是直接使用httpx进行异步请求:

用法跟上面差不多,都是用AsyncClient来处理的,但是就是需要升级Python3.8以上才行。

03.强大的功能

httpx支持很多http的请求方式,除了我们常见的get请求之外 ,还支持自定义header,自定义post表单数据,发送文件分段上传,发送二进制请求数据等等。下面给大家简单看一下:

还有发送表单数据

04.实战异步玩一下

既然httpx它的一个很大的卖点是异步,说了这么多,我们用一个小的异步爬虫案例来玩一下httpx库,并发爬取有道词典看看效果。

整个程序非常短30来行,非常简单,就分两部分:第一部分:就是用httpx构造一个client发起异步请求,连续请求100次,然后把这个100个请求任务包裹在async框架里面,进行并发处理

第二部分:就是每一个去有道发起一个请求,然后用pyquery进行解析html文本数据

我们看一下100次的请求大概需要多久

100次的异步请求大概花了3.5秒左右,还是相当的快滴。如果用requests库同步处理的花至少要20秒左右,httpx还是快不少的。

上面只介绍了一部分功能,httpx还有很多强大的功能,使用方法跟requests差不多。requests能支持的httpx都支持,requests不能干的事情httpx也能干。这个库野心还是很大的,当你的项目既要支持同步请求和也要支持异步请求的时候,httpx就该上场啦!有兴趣的小伙伴赶紧试试哦。

更多原创的精彩干货可以去公众号【菜鸟学Python】找我们。目前原创近400个趣味原创案例(Python入门,进阶,经验技巧,爬虫,数据分析,机器学习,面试经验等),欢迎来公众号找我们交流!

python3.8安装requests库_再见requests!Python下一代 http客户端出炉啦!相关推荐

  1. python3.7安装numpy库_安装了anaconda3,自带numpy库,但不能导入,问题出在哪里?

    是我在jupter notebook网页上输入import numpy后,显示ImportError,但我已经安装了numpy库. 以下是错误的信息: ImportError Traceback (m ...

  2. python3.8安装pyinstaller库_模块:pyinstaller库的安装与使用

    PyInstaller库的安装 (cmd命令行) pip install pyinstaller 如果安装失败 python 3.8 不兼容. 解决方案:安装和使用pyinstaller 4.0 de ...

  3. python导入requests库_windows环境中python导入requests

    在windows7中装完python,如何导入requests库呢? Requests是一个基于Apache2协议开源的Python HTTP库,号称是"为人类准备的HTTP库". ...

  4. Ubuntu18.04系统中python3.7安装MultiNEAT库

    Ubuntu18.04系统中python3.7安装MultiNEAT库 前言 MultiNEAT介绍 安装问题 boost安装 MultiNEAT安装 安装过程遇到问题及解决方法 前言 MultiNE ...

  5. python3.7安装dlib库,无须安装vs

    python3.7安装dlib库,无须安装vs 首先,下载dlib-19.17.99-cp37-cp37m-win_amd64.whl 链接:https://pan.baidu.com/s/15bQ2 ...

  6. 经验分享:Python3离线安装及库更新

    Python3离线安装及库更新 背景 思路 步骤 一, 安装操作系统 二, 安装python 2.1, 安装依赖环境 2.2, 安装python 2.2.1, 创建Python目录 2.2.2, 解压 ...

  7. python需要安装的库_使用python学习【机器学习】需要安装的库~

    ---------------------------------------------------------------------------------------------------- ...

  8. python3.8安装urllib库_urllib库的基本使用

    学习爬虫的目的便是模拟浏览器向服务器发出请求,进而获取所需数据. 爬虫可以分为抓取页面.分析页面和存储数据三步. 每一步中,python都有强大的模块来让我们使用. 今天先来学习请求库urllib的基 ...

  9. python3.8如何安装jieba库_安装jieba、wordcloud等第三方库

    任务:安装第三方库 C:\Users\l>pip install wheel Collecting wheel Downloading https://files.pythonhosted.or ...

最新文章

  1. java继承的知识点_Java知识点梳理——继承
  2. Android之如何以最简单方式开启闪光灯
  3. flutter版本控制工具 `FVM`
  4. 5 大常用机器学习模型类型总结
  5. 七、Python第七课——有关列表的二三事(切片、切片的遍历和复制)
  6. python设置window系统ip
  7. Linux CentOS 安装 JAVA JDK 版本
  8. Python学习视频教程大全
  9. C语言打印平行四边形
  10. 海思SDK学习(5)海思媒体处理软件平台MMP(4)VO视频输出
  11. 2021年9月国产数据库排行榜:达梦奋起直追紧逼OceanBase,openGauss反超PolarDB再升一位...
  12. wxid中文是什么_微信号wxid怎么登录?wxid与微信号是什么关系?
  13. 3D打印机T3升级corexy  制作过程(三)
  14. 超声波模块HC-SR04简介以及编程
  15. (20200921Solved)UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 0: invalid cont
  16. 计算机键盘gt,雷神(Thunderobot)911GT-Y1笔记本电脑键盘评测-ZOL中关村在线
  17. tvOS游戏开发系列(SpriteKit)之新建tvOS游戏项目(二)
  18. 简单毛概刷题网页制作 3.0(拖欠近一年版)
  19. 文件类型一共有多少种?后缀又有多少?用什么打开?看了下面的文档就全搞定了
  20. 上万数据批量新增/修改优化经验

热门文章

  1. 在一个有返回值的方法中,用block回传的解决方法
  2. 问题解决:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  3. [c#]解决方案:需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
  4. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法
  5. 解决数据库里表字段带下划线,实体类转小驼峰,Mapper的映射问题
  6. Windows 10 powershell 中文乱码解决方案
  7. C# 出现System.TypeInitializationException类型初始值设定项引发异常
  8. 使用pip安装特定的软件包版本
  9. Java线程池了解一下
  10. Android P 凹口屏支持,打造全面屏体验