码迷,mamicode.com
首页 > 其他好文 > 详细

requests模块

时间:2019-01-01 12:33:29      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:bubuko   ...   --   cep   方式   app   专业   方法   style   

python requests用法总结

本文全部来源于官方文档 http://docs.python-requests.org/en/master/

1、安装

Requests 是一个第三方 Python 模块,其官网的介绍如下:
Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到。可以说,Requests 完全满足如今网络的需求

第三方模块并不是默认的模块,意味着你需要安装它,我们使用 pip3 安装它。

首先要安装 pip3:
$ sudo apt-get update
$ sudo apt-get install python3-pip

安装方式一般采用$ pip install requests。
如果在终端中需要使用代理:pip --proxy http://代理ip:端口 install requests

技术分享图片

方法2:通过源码安装

先通过 git 克隆源码库:
git clone git://github.com/kennethreitz/requests.git

或者直接到 github 网页上下载源码压缩包
接着进入到 requests 目录中执行以下命令:
python setup.py install

2、获取响应状态

 

>>> r = requests.get(https://api.github.com/user, auth=(user, pass))
>>> r.status_code
200
>>> r.headers[content-type]
application/json; charset=utf8
>>> r.encoding
utf-8
>>> r.text
u{"type":"User"...
>>> r.json()
{uprivate_gists: 419, utotal_private_repos: 77, ...}

3、获取响应时间

获取elapsed不同的返回值
import requests
r = requests.get("https://baidu.com")
print(r.elapsed)
print(r.elapsed.total_seconds())
print(r.elapsed.microseconds)
print(r.elapsed.seconds)
print(r.elapsed.days)
print(r.elapsed.max)
print(r.elapsed.min)
print(r.elapsed.resolution)

elapsed里面几个方法介绍

  • total_seconds 总时长,单位秒
  • days 以天为单位
  • microseconds (>= 0 and less than 1 second) 获取微秒部分,大于0小于1秒
  • seconds Number of seconds (>= 0 and less than 1 day) 秒,大于0小于1天
  • max = datetime.timedelta(999999999, 86399, 999999) 最大时间
  • min = datetime.timedelta(-999999999) 最小时间
  • resolution = datetime.timedelta(0, 0, 1) 最小时间单位

4、timeout超时

1.如果一个请求响应时间比较长,不能一直等着,可以设置一个超时时间,让它抛出异常
2.如下请求,设置超时为1s,那么就会抛出这个异常:requests.exceptions.ConnectTimeout: HTTPConnectionPool

import requests
r = requests.get("http://cn.python-requests.org/zh_CN/latest/", timeout=1)
print(r.elapsed)
print(r.elapsed.total_seconds())
print(r.elapsed.microseconds)

5、例子

import requests

def url_req_test(url):
    def inner():
        r = requests.get(url)
        print(访问状态:%s,响应时间:%s秒 %(r.status_code, r.elapsed.total_seconds()))
    return inner

baidu = url_req_test(https://www.baidu.com)
qq = url_req_test(https://www.qq.com)

baidu()
qq()
访问状态:200,响应时间:0.807591秒
访问状态:200,响应时间:0.108424秒

 

requests模块

标签:bubuko   ...   --   cep   方式   app   专业   方法   style   

原文地址:https://www.cnblogs.com/dxnui119/p/10204359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!