pip install requests二 发送get请求
import requests # 请求接口 url1 = "https://www.wanandroid.com/" res = requests.get(url=url1) # 获取get请求的状态码 print(res.status_code) # 获取get请求的内容 print(res.content) # 如果content为乱码时,可以用text # 得到一个html的文本 print(res.text)
三params
1.再发一个带参数的 get 请求,如玩安卓搜索:Android 地址为: https://www.wanandroid.com/article/query?k=Android&key=value Get 接口传参都是在接口路径后面用 ? 间隔,比如 https://www.wanandroid.com/article/query ? k=Android & key=value 如果需要传递多个参数,参数之间用 & 连接 1.请求参数:k=Android,可以以字典的形式传参:{"k": " Android "} 3.多个参数格式:{"key1": "value1", "key2": "value2", "key3": "value3"}import requests # 获取url url1 = "https://www.wanandroid.com/" # 创建参数,以字典的形式 payload = {"k": "Android"} res = requests.get(url=url1, params=payload) # 获取get请求的状态码 print(res.status_code) # 获取get请求的内容 print(res.content) # 如果content为乱码时,可以用text # 得到一个html的文本 print(res.text)方便查看get请求的内容,可以放在一个文件中
# 将生成的html的文件单独写出来 with open("wan.html", "w", encoding="utf8") as f: f.write(res.text)四、content 1.百度首页如果用 r.text 会发现获取到的内容有乱码,因为百度首页响应内容是 gzip 压 缩的(非 text 文本) 五、response 1.response 的返回内容还有其它更多信息 -- r.status_code #响应状态码 -- r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩 -- r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键 不区分大小写,若键不存在则返回 None
# 查看请求头 print(res.headers) # 查看请求头中的某一内容 print(res.headers["Content-Type"])-- r.json() #Requests 中内置的 JSON 解码器,处理后对应 Python 的 dict -- r.url # 获取 url -- r.encoding # 编码格式 -- r.cookies # 获取 response 返回的 cookie -- r.raw #返回原始响应体 -- r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码 -- r.raise_for_status() #失败请求(非 200 响应)抛出异常
import json # ⭐ import requests url1 = "http://httpbin.org/post" payload = {"username": "****", "password": "****"} # 方法一:json.dumps将字典转换成json⭐ payload = json.dumps(payload) res = requests.post(url=url1, data=payload) print(res.status_code) print(res.text)第二种:使用 json 参数默认处理成 json 格式进行传递。
import requests url1 = "http://httpbin.org/post" payload = {"username": "****", "password": "****"} # 方法二:将data改成json⭐ res = requests.post(url=url1, json=payload) print(res.status_code) print(res.text)