001 python接口 get请求

Posted 汁虫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 错误信息和警告信息全部都解决了。

 

 

 

以上是关于001 python接口 get请求的主要内容,如果未能解决你的问题,请参考以下文章

Python接口测试-使用requests模块发送GET请求

使用PHP开发一个简单的后台接口(响应移动端的get请求和post请求)

python接口自动化测试三:代码发送HTTP请求

Python接口自动化之request请求封装

python接口自动化测试四:代码发送HTTPS请求

python接口测试—get请求