Python中怎么发送Get请求
这篇文章将为大家详细讲解有关Python中怎么发送Get请求,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
一、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,可以这样装:
pipinstall-ihttp://mirrors.aliyun.com/pypi/simple/requests
附上国内常见的镜像源
鸿蒙官方战略合作共建——HarmonyOS技术社区
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
requests 官方文档:https://requests.readthedocs.io/zh_CN/latest/
2.发送 get 请求
一个完整的 get 请求,应该包括请求行(url)和请求头(headers)、请求参数(params)。
importrequests#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)#dictprint(a.headers['Date'])#keyprint(a.cookies)#RequestsCookieJar
3.如何判断发送 get 请求要不要传请求头部?
先在 fiddler 中去掉请求头部,用这个接口发下请求试试,如果是正常返回 200 就可以不传头部,如果在工具中发送请求后,提示 403 - Forbidden: Access is denied,那么就需要传头部。
请求头中那么多参数,哪些参数需要呢?
在工具中把请求头中的参数挨个删掉试试,不行的话就要加上了。
这个是看开发怎么实现的了,自己写接口自动化代码的时候最好写上请求头,这样规范一些。
4.传入请求头
头部写成字典格式,headers=headers,传入请求头。
有些响应内容是 gzip 压缩的,text 只能打印文本内容,用 content 是二进制流。一般获取返回值内容,推荐用 content。
importrequestsurl="https://www.baidu.com"#构建请求头headers={'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_12_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/62.0.3202.89Safari/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 的字典了。
a.url 获取 url。
a.encoding 编码格式。
a.cookies 获取返回的 cookie。
a.text字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
a.raise_for_status() 失败请求(非 200 响应)抛出异常。
关于Python中怎么发送Get请求就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...