zoukankan      html  css  js  c++  java
  • 001 python接口 get请求

    /*
    时间:2018/08/22
    功能:get请求
    目录: 
      一: 安装request
        1 安装软件
        2 pip常用命令
        3 登录官网
      二: get请求
        1 无参
        2 有参 - 存放url
        3 有参 - 存放params
        4 cookie
        5 解码
      三: 其他
        1 详解request
        2 错误提示 - SSL
        3 警告提示
    */

    一: 安装pip
      1 安装软件

    1 : 运行输入"cmd",进入Dos窗口。

    2 : 输入"pip",出现如图说明python自带工具pip没问题。

    1 : 输入"pip install requests"(安装requests模块)。

    2 : 不要打开fiddler或其他代理工具,否则会报SSL错误,https请求没有证书。

    1 : 如图安装进度到100%。

     

    1 : 验证安装,输入"pip list"(查看安装模块)。

    2 : 出现红框内request模块,说明安装成功。

      2 pip常用命令

        1 : pip install 模块名称 - 安装模块。

        2 : pip uninstall 模块名称 - 卸载模块。

        3 : pip list - 查看已安装模块。


      3 登录官网

    1 : 访问官网: http://cn.python-requests.org/zh_CN/latest/。

    2 : 最好资料: 官方文档、书籍、博客

    二: get请求
      1 无参

    1 : 访问网站: https://www.juhe.cn/。

    1 : 先使用fiddler测试。

    2 : 请求方式 - get; url - http:https://www.juhe.cn/。

    3 : 点击"Execute"。

    1 : 查看刚才请求,查看返回数据没有问题。

    1 : python代码请求。

    # coding:utf-8
    import requests
    
    url = "https://www.juhe.cn/"
    r = requests.get(url)
    
    print(r.status_code)    # 状态码
    print(r.headers)        # 头部
    print(r.text)           # 正文

    2 : 查看返回结果,和Fiddler一样。


      2 有参 - 存放url

    1 : 访问网址:https://www.juhe.cn/docs/api/id/166 ,使用第三方提供的接口。

    1 : 先使用fiddler请求。

    2 : 请求方式 - get; url - http://japi.juhe.cn/qqevaluate/qq?key=appKey&qq=qq

    3 : 点击"Execute"。

    1 : 查看刚才请求,查看返回数据没有问题。

    1 : python代码请求。

    2 : 查看返回结果,和Fiddler一样。


      3 有参 - 存放params

    1 : 访问网址: https://zzk.cnblogs.com/s/blogpost。

    2 : 搜索框内输入: Fiddler 001 安装。

    3 : 点击查找一下。

    1 : python代码实现。

    # coding:utf-8
    import requests
    
    url = "https://zzk.cnblogs.com/s/blogpost?w=Fiddler 001 安装"
    r = requests.get(url)
    
    print(r.status_code)    # 状态码
    print(r.headers)        # 头部
    print(r.text)           # 正文

    2 : 查看搜索结果和浏览器一样。

    1 : python代码实现。

    # coding:utf-8
    import requests
    
    url = "https://zzk.cnblogs.com/s/blogpost"
    par = {
        "w" : "Fiddler 001 安装"
    }
    r = requests.get(url, params = par)
    
    print(r.status_code)    # 状态码
    print(r.headers)        # 头部
    print(r.text)           # 正文

    2 : 查看搜索结果和浏览器一样。


      4 cookie

    1 : 访问网址: http://zzk-s.cnblogs.com/s/blogpost?Keywords=001+Fiddler+安装。

    2 : 报错403没有权限,原因是缺少cookie。 

    1 : 先使用fiddler请求。

    2 : 请求方式 - get; url - http://zzk-s.cnblogs.com/s/blogpost?Keywords=001+Fiddler+安装

    3 : 点击"Execute",发现执行结果也是403。

    1 : 浏览器访问,http://zzk-s.cnblogs.com/s/blogpost (去掉参数的url)。

    2 : 抓取该请求,查看cookie。

    1 : 先使用fiddler请求。

    2 : 请求方式 - get; url - http://zzk-s.cnblogs.com/s/blogpost?Keywords=001+Fiddler+安装

    3 : 头部添加cookie信息,"Cookie": "AspxAutoDetectCookieSupport=1"。

    4 : 点击"Execute",执行成功。

    1 : python代码实现。

    View Code

    2 : 查看搜索结果和浏览器一样。


      5 解码

    1 : 浏览器访问  https://www.baidu.com/。

    2 : 点击右侧红框内的按钮,解码数据和浏览器一样。这是Fiddler自带解码,

    1 : python代码实现。

    # coding:utf-8
    import requests
    
    url = "https://www.baidu.com/"
    r = requests.get(url)   
    print(r.text)                       # 正文 - 未解码
    print(r.content.decode("utf-8"))    # 正文 - 解码

    2 : 和fiddler解码后的一样。

     

    三: 其他

      1 详解request

    1 : python代码实现。

    # coding:utf-8
    import requests
    
    url = "https://www.baidu.com/"
    r = requests.get(url)   # 请求地址 - 返回字典
    
    # 主要:
    print(r.status_code)                # 状态码
    print(r.headers)                    # 头部信息 - 字典存储
    print(r.content.decode("utf-8"))    # 正文 : r.text - 字符串
    # 次要
    print(r.url)        # 获取url
    print(r.encoding)   # 编码格式
    print(r.cookies)    # cookie信息 
    
    '''
    r.headers        # 头部信息 - 字典存储
    {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform',
     'Connection': 'Keep-Alive',
     'Content-Encoding': 'gzip',
     'Content-Type': 'text/html',
     'Date': 'Tue, 21 Aug 2018 11:23:57 GMT',
     'Last-Modified': 'Mon, 23 Jan 2017 13:23:50 GMT',
     'Pragma': 'no-cache',
     'Server': 'bfe/1.0.8.18',
     'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/',
     'Transfer-Encoding': 'chunked'
     }
    '''
    print(r.headers["Content-Encoding"])
    print(r.headers["Content-Type"])
    print(r.headers["date"])

    2 : python请求。

    标准参数:
        requests.get(url, params, kwargs)
        requests.post(url, data, json, kwargs)
    常用参数:
        requests(url, params, headers, cookies, data/json, allow_redirects, verify)

      2 错误提示 - SSL

    1 : python访问https协议的网站时,打开了fiddler或者其他代理,导致出错SSL。

    1 python代码实现。

    # coding:utf-8
    import requests
    
    url = "https://www.baidu.com/"
    r = requests.get(url, verify = False)   # 请求地址 - 返回字典
    
    print(r.status_code)                # 状态码
    print(r.headers)                    # 头部信息 - 字典存储
    print(r.content.decode("utf-8"))    # 正文 : r.text - 字符串

    2 错误提示解决了,代码可以请求到服务器返回数据,只剩下警告信息。

      3 警告提示

     

    1 python代码实现。

    # coding:utf-8
    import requests
    import urllib3
    urllib3.disable_warnings() # 忽略警告
    
    url = "https://www.baidu.com/"
    r = requests.get(url, verify = False)   # 请求地址 - 返回字典
    
    print(r.status_code)                # 状态码
    print(r.headers)                    # 头部信息 - 字典存储
    print(r.content.decode("utf-8"))    # 正文 : r.text - 字符串

    2 错误信息和警告信息全部都解决了。

     
  • 相关阅读:
    超时时间已到。在操作完成之前超时时间已过或服务器未响应 shiney
    C#的映射机制 shiney
    C#用OLEDB导入问题总结 shiney
    SQL中的isnull shiney
    单虚拟机搭建zookeeper集群
    shell与sqlplus交互
    servlet
    迷你MVVM框架 avalonjs 入门教程
    classpath 'com.android.tools.build:gradle:6.7
    new ArrayList json.parse
  • 原文地址:https://www.cnblogs.com/huafan/p/9517040.html
Copyright © 2011-2022 走看看