我是靠谱客的博主 老迟到机器猫,最近开发中收集的这篇文章主要介绍GET请求与POST请求及高级用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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请求及高级用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部