Python网络请求-aiohttp

异步高效,快速上手Python aiohttp网络请求库 一、Python aiohttp简介在进行Web开发和网络请求时,高效的异步处理是非常重要的。Python aiohttp库是一个基于asyncio的异步网络请求库,它提供了简洁且易于使用的API,能够快速进行异步网络请求和处理。本文将详细介绍Python aiohttp的使用方法和技巧,帮助你快速掌握这一强大的网络请求库。二、安装和导入aiohttp库三、发起异步请求1. 发起GET请求在上述代码中,我们定义了一个fetch函数,用于发起GET请求并返回响应的文本内容。 阅读详情

在 Python 众多的 HTTP 客户端中,最有名的莫过于 、 和 。requestsaiohttphttpx

在不借助其他第三方库的情况下, 只能发送同步请求; 只能发送异步请求; 既能发送同步请求,又能发送异步请求。requestsaiohttphttpx

那么怎么选择呢

  • 只发同步请求用 ,但可配合多线程变异步。requests
  • 只发异步请求用 ,但可以配合await变同步。aiohttp
  • httpx可以发同步请求也可以异步,但是请求速度同步略差于 ,异步略差于requestsaiohttp

这里不建议使用多线程来做异步请求,建议使用异步IO的方式。

asyncio的优势:

  • 可以异步请求。

  • 可以普通请求也可以作为WS客户端连接。

  • 可以作为WEB服务器和WEBSOCKET服务器。

  • 性能较好。

安装依赖

<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>pip</strong></span> install aiohttp
</span></span></span></span>

客户端

默认超时时间

<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6">aiohttp.ClientTimeout(
    total=<span style="color:#880000">5</span>*<span style="color:#880000">60</span>, 
    connect=<span style="color:#78a960">None</span>,
    sock_connect=<span style="color:#78a960">None</span>, 
    sock_read=<span style="color:#78a960">None</span>
)
</span></span></span></span>

获取请求

基本请求

<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>import</strong></span> aiohttp
<span style="color:#333333"><strong>import</strong></span> asyncio


<span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>def</strong></span> <span style="color:#880000"><strong>main</strong></span>():
    <span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>with</strong></span> aiohttp.ClientSession() <span style="color:#333333"><strong>as</strong></span> session:
        params = {<span style="color:#880000">'key1'</span>: <span style="color:#880000">'value1'</span>, <span style="color:#880000">'key2'</span>: <span style="color:#880000">'value2'</span>}
        resp = <span style="color:#333333"><strong>await</strong></span> session.get(
            <span style="color:#880000">'https://www.psvmc.cn/login.json'</span>,
            params=params
        )
        result = <span style="color:#333333"><strong>await</strong></span> resp.text()
        result2 = <span style="color:#333333"><strong>await</strong></span> resp.json()
        print(result)
        print(result2)


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
</span></span></span></span>

获取状态码

<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>import</strong></span> aiohttp
<span style="color:#333333"><strong>import</strong></span> asyncio


<span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>def</strong></span> <span style="color:#880000"><strong>main</strong></span>():
    <span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>with</strong></span> aiohttp.ClientSession() <span style="color:#333333"><strong>as</strong></span> session:
        params = {<span style="color:#880000">'key1'</span>: <span style="color:#880000">'value1'</span>, <span style="color:#880000">'key2'</span>: <span style="color:#880000">'value2'</span>}
        <span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>with</strong></span> session.get(
            <span style="color:#880000">'https://www.psvmc.cn/login.json'</span>,
            params=params
        )<span style="color:#333333"><strong>as</strong></span> resp:
            print(resp.status)
            print(<span style="color:#333333"><strong>await</strong></span> resp.text())


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
</span></span></span></span>

文件下载

<span style="color:#333333"><span style="background-color:#fefefe"><span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>import</strong></span> aiohttp
<span style="color:#333333"><strong>import</strong></span> asyncio


<span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>def</strong></span> <span style="color:#880000"><strong>main</strong></span>():
    <span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>with</strong></span> aiohttp.ClientSession() <span style="color:#333333"><strong>as</strong></span> session:
        params = {<span style="color:#880000">'key1'</span>: <span style="color:#880000">'value1'</span>, <span style="color:#880000">'key2'</span>: <span style="color:#880000">'value2'</span>}
        <span style="color:#333333"><strong>async</strong></span> <span style="color:#333333"><strong>with</strong></span> session.get(
            <span style="color:#880000">'https://www.psvmc.cn/search.json'</span>,
            params=params
        )<span style="color:#333333"><strong>as</strong></span> resp:
            filename = <span style="color:#880000">"D://search.json"</span>
            chunk_size = <span style="color:#880000">1000</span>
            <span style="color:#333333"><strong>with</strong></span> open(filename, <span style
掌握异步网络编程利器:Python aiohttp使用教程及代码示例 Python aiohttp是一个强大的异步HTTP客户端/服务器框架,它提供了一种简单且高效的方式来处理网络请求和响应。本文将详细介绍aiohttp的使用教程,并提供丰富的代码示例,帮助读者快速掌握该框架的使用方法。 阅读详情

相关推荐

使用aiohttp进行异步HTTP请求

在Python中,aiohttp是一个强大的库,用于进行异步的HTTP请求。本文将介绍如何使用aiohttp库进行异步HTTP请求,并提供相应的源代码示例。在Python中,aiohttp是一个强大的库,用于进行异步的HTTP请求。本文将介绍如何使用aiohttp库进行异步HTTP请求,并提供相应的源代码示例。本文介绍了如何使用aiohttp库发起异步HTTP请求,并同时发起多个异步请求。本文介绍了如何使用aiohttp库发起异步HTTP请求,并同时发起多个异步请求。首先,我们需要安装aiohttp库。

. 366

QComboBox设置最大显示数量多余的用滑动条,以及QComboBox::setMaxVisibleItems()不起作用的问题

QComoboBox是Qt封装的一个选择框的东西,但是我在使用过程中有一点感觉很不好,如图: 不论你往里面添加多少个它都会给你显示全部,甚至给你铺满全屏,后来看了官方文档发现有个setMaxVisibleItems()的方法,我欣喜若狂啊,终于特么的能解决了,但是,很遗憾,不知为啥,我设置上之后并没有起作用,依然会显示全部,后来搜了百度发现有个人是这样解决的 QComboBox *box = ne...

Aboveground的博客 4919

从频谱分析到硬件加速:用ZYNQ-7020+FFT IP核实现实时信号处理的完整方案

本文详细介绍了如何利用ZYNQ-7020和FFT IP核实现实时信号处理的完整方案,涵盖系统架构设计、硬件加速实现及性能优化。通过异构计算架构,该方案将1024点FFT处理延迟压缩至28μs,显著提升工业自动化和无线通信等领域的实时频谱分析效率。

weixin_33704234的博客 467

A Mathematical Framework for Transformer Circuits—(一)

transformer数学理解理论

qq_42208244的博客 2663

无人机机场自动化巡检钢铁厂管廊技术方案

摘要:针对钢厂管廊人工巡检效率低、成本高等问题,提出5G+无人机自主巡检解决方案。该系统由智能机库、5G无人机、AI分析平台等组成,可实现自动起降、实时数据传输、缺陷智能识别等功能。无人机配备四合一云台相机,支持42分钟续航和复杂环境飞行,通过深度学习算法自动生成巡检报告。方案实施后可提升巡检效率3倍以上,降低人工成本和安全风险,实现全天候自动化巡检,为钢厂管廊安全管理提供智能化技术支持。(149字)

gxdhlg的专栏 1685

多智能体强化学习MATD3算法完整复现与分析

多智能体强化学习MATD3算法复现与分析摘要 MATD3算法是多智能体深度强化学习领域的重要进展,通过改进MADDPG算法,引入双Q学习、延迟策略更新和目标策略平滑等技术,显著提升了算法稳定性。本文完整复现了MATD3算法,详细解析了其数学原理,包括部分可观测马尔可夫博弈模型和TD3核心思想。在实现层面,设计了集中式Critic和分布式Actor的神经网络架构,采用PyTorch框架构建了Actor-Critic网络模块,包含精心设计的权重初始化和训练流程。该算法有效解决了多智能体环境中的非平稳性、信用分配

max500600的博客 529

ConvNeXt 系列改进:二次创新 ConvNeXt:结合 RepVGG 结构重参数化,训练多分支、推理单路

2026年的视觉模型赛道呈现出一种有趣的“返璞归真”趋势——在Transformer狂飙数年之后,卷积网络正以全新的姿态回归。这其中,ConvNeXt无疑是纯卷积阵营中最耀眼的明星。从2022年Meta AI首次提出至今,ConvNeXt系列已经走过了近四年的演进之路,衍生出ConvNeXt V2、E-ConvNeXt等多个增强版本。ConvNeXt的7×7深度卷积带来了不错的感受野,却也埋下了推理效率的隐患。

ZXSXJ的博客 234

yolov26改进 | 融合改进篇 | 基于 MobileNetV4 和双向特征金字塔网络BiFPN的融合改进(全网独家首发)

本文介绍BiFPN与MobileNetV4融合改进的YOLOv26。许多模块单独使用能够涨点,但直接叠加后可能因功能重复、通道不匹配、尺度冲突而掉点,因此融合前必须理解各模块作用。MobileNetV4利用UIB与Mobile MQA构建轻量主干,提升特征提取能力;BiFPN通过可学习权重完成双向多尺度融合,强化大、中、小目标的信息交互。两者优化Backbone与Neck,功能互补、结构冲突较少。本文提供代码、配置、消融对比及Codex修改思路,MobileNetV4也可替换其他主干,便于组合实验与二次创新

Snu77的博客 241

脑电信号处理实战 01 | 从 0 跑通第一个 EEG 分析:加载、滤波、频谱与“睁眼闭眼“

本文以 UCI 公开数据集"EEG Eye State"为例,从零走通脑电处理的完整流水线——数据加载、1–40 Hz 带通滤波、Welch 功率谱、频带功率、通道相关性与箱线图质控、睁闭眼对比和时频分析,并用 8 张科研风格图层层揭示这份数据中的伪迹与通道重复问题,说明"流程跑得通不等于结果可信,质量控制永远先行"。

qq_53529450的博客 115

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Python 中日志记录新技能
下一篇: 在会计研究中使用Python进行文本分析
Python_xiaowu
博客等级 码龄5年 3096粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值