• python接口自动化(一) 发送get请求; 状态码对照表;


    参考:https://www.cnblogs.com/du-hong/category/1413482.html
    requsts.它是一个Python第三方库,处理URL资源特别方便。参考:https://requests.readthedocs.io/zh_CN/latest/user/quickstart.html
    一、环境安装
    安装requests
    pip install requests
    二、get请求
    1.导入requests后,用get方法就能直接访问url地址,如:https://www.cnblogs.com/canglongdao/
    2.这里的r也就是response,请求后的返回值,可以调用response里的status_code方法查看状态码;
    3.状态码200只能说明这个接口访问的服务器地址时对的,并不能说明功能OK,一般要查看响应的内容,r.text是返回文本信息
    # coding:utf-8
    import requests
    r=requests.get("https://www.cnblogs.com/canglongdao/")
    print(type(r))
    print(r.status_code)
    print(r.text)
    

    #不带参数
    # coding:utf-8
    import requests
    r=requests.get("https://www.sogou.com/")
    #print(dir(r)) #查看r属性列表
    print(r.status_code) #状态200代表服务器地址正确,不代表功能ok
    print(r.text)
    #r.status_code #返回响应状态码
    #r.content #字节方式的响应体,会自动解码gzip和deflate压缩
    #r.headers #返回响应头,字典格式
    #r.text #返回响应内容,字符串方式的响应体,会自动根据响应头部的字符编码进行解码
    #r.cookies #返回cookie内容
    #r.json() #requests自带json解码器
    #r.raw #返回原始响应体
    #r.encoding #编码格式
    #r.raise_for_status() #非200响应抛出异常
    #r.url #获取url
    三、params
    1.再发送一个带参数的get请求,如在博客园搜索canglongdao,url地址为:https://zzk.cnblogs.com/s/blogpost?w=canglongdao
    2.请求参数:w=canglongdao,可以以字典的形式传参:{"w":"canglongdao"}
    3.多个参数格式{"key1":"value1","key2":"value2","key3":"value3"}
    四、content
    1.博客园查找如果用r.text会发现获取的内容报错,因为博客园查找响应内容是gzip压缩的(非text文本)

     

     2.如果在fiddler工具乱码,是可以点击后解码的,在代码里面可以用r.content这个方法,content会自动解码gzip和deflate压缩。

     

     五、response

     1.response的返回内容还有其它更多信息

      --r.status_code  #响应状态码

      --r.content    #字节方式的响应体,会自动为你解码gzip和deflate压缩

      --r.headers     #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

      --r.json()      #Requests中内置的JSON解码器

      --r.url      #获取url

      --r.encoding   #编码格式

      --r.cookies     #获取cookie

      --r.raw       #返回原始响应体

      --r.text       #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

      --r.raise_for_status() #失败请求(非200响应)抛出异常


    常用框架
    #encoding=utf-8
    import requests
    def xixi(url):
    try:
    a=requests.get(url)
    a.raise_for_status()
    a.recoding=a.apparent_encoding
    a.encoding='utf-8'
    return a.text
    except:
    return '未知错误'

    if __name__=="__main__":
    a="http://www.sougou.com"
    print(xixi(a))

     

     

     

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    sax解析xml案例二
    mysql之删除重复数据
    Android之Intent探究
    struts2之Action名称的搜索顺序
    struts2自定义拦截器二——模拟session超时的处理
    struts2之防止表单重复提交
    Android之日期及时间选择对话框
    sax解析xml案例一
    Android之单选按钮对话框
    查询修改nls_database_parameters系统配置
  • 原文地址:https://www.cnblogs.com/canglongdao/p/11838333.html
Copyright © 2020-2023  润新知