概述
GET请求
给请求添加参数,可以使用params参数
代码:
import requests
data={
"name":"germey",
"age":22
}
r=requests.get("http://httpbin.org/get",params=data)
print(r.text)
输出:
{
"args": {
"age": "22",
"name": "germey"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.19.1"
},
"origin": "39.176.195.197, 39.176.195.197",
"url": "https://httpbin.org/get?name=germey&age=22"
}
网页返回的类型实际上是str类型,但是它很特殊,是JSON类型。如果想解析返回的结果,得到一个字典类型的话,可以直接调用json()方法。如果返回的结果不是JSON格式,便会出现解析错误,跑出json.decoder.JSONDecodeError异常。
代码:
import requests
r=requests.get("http://httpbin.org/get")
print(type(r))
print(r.json())
print(type(r.json()))
输出:
<class 'requests.models.Response'>
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.19.1'}, 'origin': '39.176.195.197, 39.176.195.197', 'url': 'https://httpbin.org/get'}
<class 'dict'>
抓取二进制数据
图片、音频、视频都是二进制编码组成,想要抓取它们,就要拿到它们的二进制码。
这是不成功代码:
import requests
r=requests.get("http://www.baidu.com/favicon.ico")
print(r.text)
print(r.content)
输出:
正确代码如下(在该程序同目录下会出现mybaidu.ico的文件就是爬下来的百度logo了)
import requests
r=requests.get("http://www.baidu.com/favicon.ico")
with open("mybaidu.ico","wb") as f:
f.write(r.content)
响应
status_code:状态码
headers:响应头
cookie:Cookis
url:URL
history:请求历史
print(r.status_code)
print(r.headers)
print(r.cookies)
print(r.url)
print(r.history)
状态码常用来判断请求是否成功,而requests还提供了一个内置的状态来查询对象requests.codes,例如用requests.codes.ok得到的是成功的状态码200。
import requests
r=requests.get("http://www.baidu.com")
exit() if not r.status_code == requests.codes.ok else print("Request Successfully!")
最后
以上就是老迟到机器猫为你收集整理的GET请求与POST请求及高级用法的全部内容,希望文章能够帮你解决GET请求与POST请求及高级用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复