zoukankan      html  css  js  c++  java
  • requests模块

    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()
    {u'private_gists': 419, u'total_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秒
  • 相关阅读:
    Python -- Redis List
    Python --Redis Hash操作
    Python使用redis介绍
    缓存服务器
    linux python3获取ip地址
    Rabbitmq -- rpc
    Rabbitmq--topic
    Rabbitmq -- direct
    删除rabbitmq中持久化的队列和数据
    Exchange-fanout 广播模式
  • 原文地址:https://www.cnblogs.com/dxnui119/p/10204359.html
Copyright © 2011-2022 走看看