一、问题:

Python 中requests库在发送http请求时相当方便好用,但在使用时一直受一个问题困扰,怎么才能查看请求时长呢?

自己写时间函数再相减?NO,这个方法肯定不行。

二、解决:

好吧。我们还是看看requests管方文档,功夫不负有心人,管网API竟然后介绍是:

elapsed = None
The amount of time elapsed between sending the request and the arrival of the response (as a timedelta). This property specifically measures the time taken between sending the first byte of the request and finishing parsing the headers. It is therefore unaffected by consuming the response content or the value of the stream keyword argument.

看不懂吧,切完回requests中文文档,Opps,没有翻译,只能靠自己了。

中文大致理解如下:

在发送请求和响应到达之前耗费的时间差(timedelta),指发送第一个byte数据头至处更完最后一个数据头之间,所以这个时长不受相应的内容影响。

看完后,是不是还云里雾里,没关系,我们看看源码,requests对elapsed方法的源码如下:

        # Get the appropriate adapter to useadapter = self.get_adapter(url=request.url)# Start time (approximately) of the requeststart = datetime.utcnow()# Send the requestr = adapter.send(request, **kwargs)# Total elapsed time of the request (approximately)r.elapsed = datetime.utcnow() - start

从源码中我们可以看到使用的datetime函数来计算时间差。

datetime是什么?不懂,来看文档吧。

classmethod datetime.utcnow()
Return the current UTC date and time, with tzinfo None. This is like now(), but returns the current UTC date and time, as a naive datetime object. See also now().

返回UTC日期和时间,UTC是什么?看看解释:Coordinated Universal Time 世界统一时间,世界标准时间

所以,你不用担心你发的请求的客户端与服务器时间不一致这种问题。

三:深入理解:

最后,问题来了,返回的时间是什么单位呢?

我们自己写个脚本就什么都知道了:

import datetime
import time
a=datetime.datetime.now()
time.sleep(0.1) #睡眠0.1秒
b=datetime.datetime.now()
print b-a

结果为:

>>>
0:00:00.100000

所以,得知,单位为微秒、微秒、

四:对比

既然知道了使用,那么,你肯定会问,这个时间准吗?

我们用jmeter来对比,访问baidu

jmeter配置如下:

运行结果的聚合报告我们看看:

结果为204ms

我们再次用requests来试试,代码如下:

import requests
r=requests.get('http://www.baidu.com')
print r.elapsed.microseconds/1000.

结果:

>>>
138.0

138ms

结果差不多。

这里我又试了内部系统真正的的接口数据

可以得知,差距不太大,数据我们可以还是有参考价值的。

参考:

Requests文档:http://cn.python-requests.org/zh_CN/latest/api.html?highlight=elapsed#requests.Response.elapsed

datatime文档:https://docs.python.org/2.7/library/datetime.html?highlight=datetime#module-datetime

其它解释:http://bbs.csdn.net/topics/390898823

转载于:https://www.cnblogs.com/landhu/p/5442069.html

python requests模块中返回时间elapsed解析相关推荐

  1. python mount回调函数_python requests模块中返回时间elapsed解析

    一.问题: Python 中requests库在发送http请求时相当方便好用,但在使用时一直受一个问题困扰,怎么才能查看请求时长呢? 自己写时间函数再相减?NO,这个方法肯定不行. 二.解决: 好吧 ...

  2. 【script】python requests模块中cookie的使用

    获取 cookie 并使用 获取 cookie import requests# 访问对象为百度 url = 'https://www.baidu.com' # 代理信息 headers = {&qu ...

  3. python requests cookiejar,Python requests模块cookie实例解析

    cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在py ...

  4. python 爬虫 requests模块 中的Cookies 验证 通过验证cookies模拟登陆豆瓣登陆

    在爬取某些数据时,需要进行网页的登陆,才可以进行数据的抓取工作.Cookies登陆就像很多网页中的自动登陆功能一样,可以让用户第二次登陆时不在需要验证账号和密码的情况下进行登陆.在requests模块 ...

  5. Requests 模块中文文档(一)

    原文链接 -> 传送门 The User Guide(1) 目录 一.为什么我还要重新翻译该文档? 二.开发哲学和协议 三.安装 Requests 四.快速上手 五.高级用法 六.身份认证 一. ...

  6. python 之模块之 xml.dom.minidom解析xml

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 之模块之 xml.dom.minidom解析xml #http://www.cnblogs.c ...

  7. python requests下载图片_python读取图片大小Python Requests模块快速入门

    requests是python的一个HTTP客户端库,跟urllib,urllib2类似.它比 urllib 更加方便,可以节约我们大量的工作,它比 urllib 更加 Pythoner. 安装 Re ...

  8. 爬虫之requests模块中cookies参数的使用

    爬虫之requests模块中cookies参数的使用 上一篇文章在headers参数中携带cookie,也可以使用专门的cookies参数 cookies参数的形式:字典 cookies = {&qu ...

  9. Python hashlib模块中的sha加密

    Python hashlib模块中的sha加密 一.sha简介 sha (Secure Hash Algorithm)模块与md5的作用相似,用于对信息进行加密. "Secure Hash ...

最新文章

  1. Openstack组件实现原理 — Keystone认证功能
  2. 深耕大数据“试验田” 发掘新经济“钻石矿”
  3. Android10.0 Binder通信原理(五)-Binder驱动分析
  4. 为什么Spring仍然会是云原生时代最佳平台之一?
  5. python设置list_python之list
  6. 拼图游戏和它的AI算法
  7. css animate属性spend不生效
  8. (十五)final关键字
  9. 电商有关淘宝天猫突破限制的解决办法
  10. 2015年OA选型一览表
  11. 华为P50/P50Pro怎么解锁huawei P50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验
  12. 【文献心得】关于内核在不同芯片平台移植的相关整理
  13. 十一种常见的光纤网络传输方案
  14. [论文写作] Wrong vs Mistake vs Error vs Incorrect vs Erroneous
  15. 大一下学期计算机基础,计算机基础复习(大一)
  16. wordcount程序中,输出文件夹中为空
  17. dw html压缩文件,如何压缩css文件?
  18. 2018 NOIP 提高组 复赛 day2
  19. 风储VSG-基于虚拟同步发电机的风储并网系统MATLAB仿真
  20. css样式如何设置边框,阴影,渐变等特效以及通过box-sizing属性设置盒子模型,背景区域设置等

热门文章

  1. 用脚本管理服务器日志
  2. es5.4.0-CentOS-6.5-x86_64安装文档
  3. phpstudy apache设置伪静态
  4. 3.1Guessing Game
  5. <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
  6. 计算机考研调剂技巧,关于考研调剂的不可不知的窍门
  7. linux下 java 压缩文件夹,java压缩文件夹linux下乱码问题
  8. iPhone开发之@Class与#import的区别
  9. 【云周刊】第145期:2017天猫双11总交易额1682亿,背后阿里绝密50+技术揭秘!
  10. java 开发银行支付、对账时证书相关的操作总结