有时候需要处理很多请求,显然,一个一个去处理是要花费很多时间的

我们就需要用到并发的方式,python并发请求的方法很多,从简单到复杂。

本案例,介绍一个超级简单,使用grequests库,实现并发请求

案例应该是一系列查询的操作,具体忘记了,很久前写的,接口参数狠简单,headers、body,带上cookie就好了

因为是查询一组数据,所有先把查询对象变量化(可以写到excel里去读,这里就不介绍了,提供这个思路)

构造头信息,直接复制

执行请求步骤,这一步是核心内容

完整代码

import grequests

import requests

cookies = {
'__guid': 'x',
'UM_distinctid': '1713e1c320b108-x-4e4c0f20-15f900-1713e1c320c299',
'token': 'Bearer xxx.xxx.K6Z2EvPnaKLZSJW2TGBJiLvVro8wnxpFbrMhcfkHmVm8',
'online.xxx.com_mid3503': 'xxx',
'wx_Guestcookie19009': '%7b%22StoreId%22%xx%2c%xx%22%3a0%2c%x%22%3a%22%22%2c%22QueitErr%22%3a%22%22%7d',
'wx_Storecookie19009': 'xx',
'online.xxx.com': 'xx',
'production.xxx.com': 'xxxx',
'production.xxx.com_mid47243': 'xxxxx',
'wx_Guestcookie2948': '%7b%22StoreId%22%3a2948%2c%xxx%22%3a0%2c%22WxOpenId%22%3a%22%22%2c%22QueitErr%22%3a%22%22%7d',
'vshop_cookie2948': 'xxxx',
'sensorsdata2015jssdkcross': '%7B%22distinct_id%22%3A%xxx-076acb82c3e26f-4e4c0f20-1440000-1713e1c047632b%22%2C%22%24device_id%22%3A%221713e1c0475449-076acb82c3e26f-4e4c0f20-1440000-1713e1c047632b%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_referrer_host%22%3A%22%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%7D%2C%22ip_address%22%3A%22175.0.128.172%22%7D',
'monitor_count': '15',
} headers = {
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
'Accept': 'application/json, text/plain, */*',
'Origin': 'https://my.xxx.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Referer': 'https://my.xxxx.com/Order/Delivered',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
} data1 = {'ids': '1086131'}
data2 = {'ids': '1086132'}
data3 = {'ids': '1086133'}
data4 = {'ids': '1086134'}
data5 = {'ids': '1086135'}
data6 = {'ids': '1086136'}
data7 = {'ids': '1086137'}
data8 = {'ids': '1086138'}
data9 = {'ids': '1086139'}
data10 = {'ids': '1086140'} req_list = [ # 请求列表
grequests.post('https://my.xx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data1),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data2),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data3),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data4),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data4),
grequests.post('https://my.xx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data5),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data6),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data7),
grequests.post('https://my.xxx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data8),
grequests.post('https://my.xx.com/Order/ConfirmDelivery', headers=headers, cookies=cookies, data=data10), ] res_list = grequests.map(req_list) # 并行发送,等最后一个运行完后返回
print(res_list[0].text) # 打印第一个请求的响应文本

grequests,并发执行接口请求的方法(简易版)的更多相关文章

  1. axios取消接口请求

    axios取消请求 这里就是分析一下接口请求需要被取消时的一些操作 因为我是用vue写的项目,所以标配用的是axios,怎么在axios中取消已经发送的请求呢? 1.在这之前我们还是先介绍一下原生js ...

  2. Python使用grequests并发发送请求

    目录 前言 grequests简单使用 grequests和requests性能对比 异常处理 前言 requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快.但是 ...

  3. CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏

    CASE函数   作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...

  4. MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  5. python3.x执行post请求时报错“POST data should be bytes or an iterable of bytes...”的解决方法

    使用python3.5.1执行post请求时,一直报错"POST data should be bytes or an iterable of bytes. It cannot be of ...

  6. legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法)

    legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法) 一.总结 一句话总结:会执行的,所以写base控制器里面的方法要注意,base控制器里面的方法要以查数据为 ...

  7. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  8. CUDA编程接口:异步并发执行的概念和API

    1.主机和设备间异步执行 为了易于使用主机和设备间的异步执行,一些函数是异步的:在设备完全完成任务前,控制已经返回给主机线程了.它们是: 内核发射; 设备间数据拷贝函数; 主机和设备内拷贝小于64KB ...

  9. 使用SpringAOP获取一次请求流经方法的调用次数和调用耗时

    引语 作为工程师,不能仅仅满足于实现了现有的功能逻辑,还必须深入认识系统.一次请求,流经了哪些方法,执行了多少次DB操作,访问了多少次文件操作,调用多少次API操作,总共有多少次IO操作,多少CPU操 ...

  10. 从浅入深掌握并发执行框架Executor

    引言 任务的执行 大多数并发应用程序都是围绕"任务执行(Task  Execution)"来构造的:任务通常是一些抽象的且离散的工作单元. 任务通常是一些抽象的且离散的工作单元.通 ...

随机推荐

  1. C++:Boost库

    今日安装一个PSI库时,需要boost库,在此认识一下boost库,转载:macOS 中Boost的安装和使用 介绍 Boost是一个功能强大,构造精良,跨越平台,代码开源,完全免费的C++程序库. ...

  2. Rust多线程中安全的使用变量

    在Rust语言中,一个既引人入胜又可能带来挑战的特性是闭包如何从其所在环境中捕获变量,尤其是在涉及多线程编程的情境下. 如果尝试在不使用move关键字的情况下创建新线程并传递数据至闭包内,编译器将很可 ...

  3. Apache Camel系列(3)----Redis组件

    Redis组件允许你从Redis接收消息,以及将消息发送给Redis.RedisProducer的功能很强大,几乎能执行所有的Redis Command,这些Command都是在Message的hea ...

  4. NIT GREAT NITYACKE DESTROYS THE UNIVERSE

    线段树 一般线段树维护的东西是什么?设其维护的信息的半群 \((A,+)\),维护标记的半群 \((T,\times)\) 和一种运算 \(*\mapsto A*T\to A\). 要求 \((b+c ...

  5. python 爬取博客访问量

    一.代码 """ Version: Python3.5 Author: OniOn Site: http://www.cnblogs.com/TM0831/ Time: ...

  6. 多线程之lamda表达式

    代码简化过程  public class TestLambda1 { ​     //3.静态内部类     static class Like2 implements ILike{          ...

  7. Linux驱动---字符设备

    目录 一.基础简介 1.1.Linux设备驱动分类 1.2.字符设备驱动概念 二.驱动基本组成 2.1.驱动模块的加载和卸载 2.2.添加LICENNSE以及其他信息 三.字符设备驱动开发步骤 3.1 ...

  8. .NET最佳实践:业务逻辑减少使用异常

    在 .NET 开发中,异常处理是保证应用健壮性的重要手段,但不应被滥用. 异常的引发和捕获相较于普通的代码逻辑性能较差,因此在热路径(频繁执行的代码路径)中,避免依赖异常来控制程序流是提升性能的关键之 ...

  9. WPF程序性能优化总结

    原文链接: https://blog.csdn.net/u010265681/article/details/77571947 WPF程序性能由很多因素造成,以下是简单地总结: 元素: 1. 减少需要 ...

  10. 自助式BI:灵活应变的商业智能

    在这个信息爆炸的时代,商业智能(BI)已经成为企业决策的必备工具.无论是哪个行业,哪个规模的企业,似乎都无法忽视这一强大工具的存在.然而,传统的BI模式往往存在着一些限制,使得企业无法灵活地应对各种业 ...