• python接口自动化2-来发送一个get请求


    前言

    Requests: 让 HTTP 服务人类,唯一的一个非转基因的 Python HTTP 库,人类可以安全享用;

    Requests继承了urllib2的所有特性,能满足当前网络的需求,支持Python 2.6—3+下完美运行。github开源地址:https://github.com/kennethreitz/requests

    一、环境安装

    1.利用python的 pip 安装:pip install request

    C:UsersAdministrator>pip install request
    Collecting request
    Using cached https://files.pythonhosted.org/packages/f1/27/7cbde262d854aedf217061a97020d66a63163c5c04e0ec02ff98c5d8f44e/request-2019.4.13.tar.gz
    Requirement already satisfied: get in d:path_pythonlibsite-packages (from request) (2019.4.13)
    Requirement already satisfied: post in d:path_pythonlibsite-packages (from request) (2019.4.13)
    Requirement already satisfied: setuptools in d:path_pythonlibsite-packages (from request) (39.0.1)
    Requirement already satisfied: query_string in d:path_pythonlibsite-packages (from get->request) (2019.4.13)
    Requirement already satisfied: public in d:path_pythonlibsite-packages (from query_string->get->request) (2019.4.13)
    Installing collected packages: request
    Running setup.py install for request ... done
    Successfully installed request-2019.4.13
    WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
    You should consider upgrading via the 'python -m pip install --upgrade pip' command.

    2.验证request是否安装成功了,cmd输入python,再import request,没有报错就是成功了

    C:UsersAdministrator>python
    Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import request
    >>>

    二、发送get请求

    小编用的是pycharm,只是写代码提高效率,当然只要是python语法用什么来写都可以,比如用文本,后缀为.py它就可以运行。

    1.直接导入 request 库,get 某个 url 就可以访问了,小编get:https://www.cnblogs.com/gsxl/ ,然后用print它的返回信息。

    2.rq表示一个请求后返回的响应值,这里我直接用rq.text,查看响应正文内容了。

    3.这里还有可以查看状态码、 响应头等等,稍后我们介绍。

    import requests
    
    url = 'https://www.cnblogs.com/gsxl/'
    rq = requests.get(url)
    print(rq.text)

     三、发送get请求带 params参数

    1.实现在百度搜索“广深小龙”,我们说一下带参数的,也有另一种可不带参数(这种的话其实参数在url上了)

    2.在浏览器内输入:https://www.baidu.com/s?wd=广深小龙 ,打开能正常搜索出来,确认没有问题后我们再写代码

    3.定义kw有一个键值对(类似json,这里是字典),kw = {‘kw’:‘广深小龙’},我们只需要在get请求上加一个 params=kw 即可,如下:

    四、还可以获取更多的响应对应值,比如我要打印响应码,就直接print(rq.status_code )想知道更多,我们可以直接看它的源码,还有以下部分:

    import requests
    
    kw = {'wd': '广深小龙'}
    rq = requests.get("http://www.baidu.com/s?", params=kw)
    
    print(rq.status_code)    # 状态码
    print(rq.text)           # raw 响应文本
    print(rq.headers)        # 响应头部...等等
    rq.status_code             #响应状态码
    rq.content                    #自动解码
    rq.headers                   #响应头
    rq.json()                       # json解码器
    rq.url                           # 获取url
    rq.encoding                 # 编码格式,一般设置=‘utf-8’
    rq.cookies                   # 获取cookie
    rq.raw                         #原始响应体
    rq.text                        #响应正文

    1.开着 fiddler 的时候,在pycharm里面发送请求就会报错,我们把 fiddler 停止(F12)或者关闭就可以了! 
     注意这里有2个坑:

    2.响应数据出现乱码解决办法:print(rq.content.decode("utf-8"))

    欢迎来QQ交流群:482713805

  • 相关阅读:
    解锁 redis 锁的正确姿势
    PHP实现Redis单据锁,防止并发重复写入
    js笔记
    FormData使用方法详解
    jquery里用each遍历的值存到数组和字符串
    Sublime Text3 安装 CTags 插件出现乱码
    通过pd.to_sql()将DataFrame写入Mysql
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket
    pandas 从txt读取DataFrame&DataFrame格式化保存到txt
    pandas 取消读取csv时默认第一行为列名
  • 原文地址:https://www.cnblogs.com/gsxl/p/11709197.html
Copyright © 2020-2023  润新知