相关文章推荐
老实的葫芦  ·  python的double转换成int_mo ...·  2 天前    · 
沉着的作业本  ·  参数从double转换到int,可能_pyt ...·  2 天前    · 
谦虚好学的烤地瓜  ·  python序列解包map_详解Python ...·  昨天    · 
聪明的花生  ·  求解报数游戏(约瑟夫环)的六种方法原理与Py ...·  昨天    · 
刚毅的打火机  ·  使用 gx64krb5 将 ...·  1 年前    · 
强悍的大蒜  ·  使用openssl编码实现一本自签名证书的示 ...·  1 年前    · 
高大的椰子  ·  Jmeter——BeanShell ...·  1 年前    · 
深情的单杠  ·  %E5%BD%A9%E7%A5%A8%E6% ...·  1 年前    · 
呐喊的石榴  ·  海康工业相机拍照代码(2)_mv_cc_en ...·  1 年前    · 
Code  ›  基础篇-Python发送get请求《如何放请求头、参数、获取返回内容》开发者社区
python python函数
https://cloud.tencent.com/developer/article/1794123
还单身的烈马
11 月前
清菡

基础篇-Python发送get请求《如何放请求头、参数、获取返回内容》

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
清菡
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 基础篇-Python发送get请求《如何放请求头、参数、获取返回内容》

基础篇-Python发送get请求《如何放请求头、参数、获取返回内容》

作者头像
清菡
发布 于 2021-02-26 15:41:45
5.4K 0
发布 于 2021-02-26 15:41:45
举报
文章被收录于专栏: 清菡软件测试

坚持原创输出,点击蓝字关注我吧

作者:清菡 博客:oschina、云+社区、知乎等各大平台都有。

❝由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ⭐,你就可以第一时间接收到本公众号的推送! ❞

目录

  • 一、Python 命名规范
  • 二、发送 get 请求
    • 1.安装 requests
    • 2.发送 get 请求
    • 3.如何判断发送 get 请求要不要传请求头部?
    • 4.传入请求头
    • 5.权限被拒:403 - Forbidden: Access is denied
  • 三、response 的返回内容还有其它更多信息

一、Python 命名规范

  • 1.是英文字符、下划线__、数字三个组成。
  • 2.项目(工程)名称、文件包名、模块名称等是英文开头,不能纯数字,下划线开头的有特殊含义,不能乱用。
  • 3.脚本的名称不能跟系统的模块或第三方模块重复,例如 requests/unittest/selenium 等。
  • 4.函数、类、方法、参数的名称不能和系统现有的名称重复。
  • 5.类名称必须大写字母开头。除了类名称,其它地方都用小写开头。命名规范最好遵守驼峰法和下划线法,例如: qingHan 、 qing_han
  • 6.不要用中文、特殊字符( :;@等 ),有些特殊字符是有特殊作用的。

二、发送 get 请求

1.安装 requests

cmd 中安装 requests:

安装: pip install requests

卸载: pip uninstall requests

查看: pip list

切记安装的时候把抓包工具关了。

如果安装报错 timeout,因为没 fq,可以这样装:

pip install -i http://mirrors.aliyun.com/pypi/simple/ requests

附上国内常见的镜像源

  1. 阿里云 http://mirrors.aliyun.com/pypi/simple/
  2. 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
  3. 豆瓣(douban) http://pypi.douban.com/simple/
  4. 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  5. 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

requests 官方文档:https://requests.readthedocs.io/zh_CN/latest/

2.发送 get 请求

一个完整的 get 请求,应该包括请求行(url)和请求头(headers)、请求参数(params)。

代码语言: javascript
复制
import  requests
# get请求:url+params请求参数
url="http://v.juhe.cn/laohuangli/d"
# params  建议参数单独拿出来,这样写
p={"key":"abf91475fc19f66c2f1fe567edd75257",
"date":"2014-09-11"}
a=requests.get(url,params=p)  #发请求
print(a.status_code)#状态码
print(a.text)#raw 文本内容
print(a.headers)#dict
print(a.headers['Date'])#key
print(a.cookies)#RequestsCookieJar

3.如何判断发送 get 请求要不要传请求头部?

先在 fiddler 中去掉请求头部,用这个接口发下请求试试,如果是正常返回 200 就可以不传头部,如果在工具中发送请求后,提示 403 - Forbidden: Access is denied,那么就需要传头部。

请求头中那么多参数,哪些参数需要呢?

在工具中把请求头中的参数挨个删掉试试,不行的话就要加上了。

这个是看开发怎么实现的了,自己写接口自动化代码的时候最好写上请求头,这样规范一些。

4.传入请求头

头部写成字典格式, headers=headers ,传入请求头。

有些响应内容是 gzip 压缩的,text 只能打印文本内容,用 content 是二进制流。一般获取返回值内容,推荐用 content。

代码语言: javascript
复制
import  requests
url="https://www.baidu.com"
# 构建请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36'
r=requests.get(url,headers=headers)
print(r.status_code)
print(r.text)# html乱码
print(r.content.decode("utf-8"))  #decode解压缩展示中文

5.权限被拒:403 - Forbidden: Access is denied

url 和请求参数都对,却没权限。可能原因:服务器识别到你是代码请求的,防脚本机制。

解决办法:需要身份验证,代码中的请求头部加上 cookies)。例如:

图片来自网络

三、response 的返回内容还有其它更多信息

a.status_code 响应状态码。 a.content 字节方式的响应体,会自动为你解码 gzip 和 eflate 压缩。 a.headers 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回 None。 a.json() Requests 中内置的 JSON 解码器 ,json 转成 python 的字典了。

 
推荐文章
老实的葫芦  ·  python的double转换成int_mob64ca12f8a724的技术博客_
2 天前
沉着的作业本  ·  参数从double转换到int,可能_python中int类型转化为float开发者社区
2 天前
谦虚好学的烤地瓜  ·  python序列解包map_详解Python序列解包(3)
昨天
聪明的花生  ·  求解报数游戏(约瑟夫环)的六种方法原理与Python实现源码_董付国_消息_教材
昨天
刚毅的打火机  ·  使用 gx64krb5 将 Kerberos 用于单一登录 (SSO) 到 SAP BW - Power BI | Microsoft Learn
1 年前
强悍的大蒜  ·  使用openssl编码实现一本自签名证书的示例(改进版)_wzsy的博客-CSDN博客
1 年前
高大的椰子  ·  Jmeter——BeanShell 内置变量vars、props、prev的使用 - 温一壶清酒 - 博客园
1 年前
深情的单杠  ·  %E5%BD%A9%E7%A5%A8%E6%BA%90%E7%A0%81%E7%A8%8B%E5%BA%8F%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8行业资讯 - X-MOL
1 年前
呐喊的石榴  ·  海康工业相机拍照代码(2)_mv_cc_enumdevices_vivisl的博客-CSDN博客
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号