Get请求
方法:requests.get(),通过GET请求访问一个页面,对应于 HTTP 的 GET 方法
使用格式:
get(url, params=None, **kwargs)
参数说明:
使用实例
import requests
# 请求url中的 `?`可以不加
url = 'https://www.baidu.com/s'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'
}
# 请求参数,字典里值为 None 的键都不会被添加到 URL 的查询字符串里
date = {
'wd':'毛不易'
}
# 发送请求返回响应对象
response_get = requests.get(url=url,params=date,headers=headers)
# 打印网页源码,,requests会基于HTTP响应的文本编码自动解码响应内容,大多数Unicode字符集都能被无缝地解码
print(response_get.text)
# 打印cookie信息
print(response_get.cookies)
# 打印状态码
print(response_get.status_code)
# 打印响应对象编码
print(response_get.encoding)
执行结果:
... 网页源码内容...
# 打印cookie信息
, , , , , , , , ]>
# 打印状态码
200
# 打印响应对象编码
utf-8
requests.Get 请求和 urllib.request.Get请求对比:
?
可以不加Post请求
方法:requests.post(),通过POST请求访问一个页面,对应于 HTTP 的 POST方法
使用格式:
requests.post(url, data=None, json=None, **kwargs)
参数说明:
使用实例
import json
import requests
url = 'https://fanyi.baidu.com/sug'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/10'
}
# 请求参数
date = {
'kw':'spring'
}
# 发送请求返回响应对象
response_post = requests.post(url=url,data=date,headers=headers)
content = response_post.text
# 反序列化
obj = json.loads(content,encoding='utf-8')
print(obj)
执行结果:返回json数据
{'errno': 0, 'data': [{'k': 'spring', 'v': 'n. 春季; 泉水,小溪; 弹簧,弹性; 跳跃 vi. 跳,跃; 突然发出或出现; 发源; 劈开,裂'}, {'k': 'Spring', 'v': '[人名] [英格兰人姓氏] 斯普林语源不详,可能来源于古英语别名,含义是“跳跃”(to jump,l'}, {'k': 'SPRING', 'v': 'abbr. shared protection ring 共享保护环'}, {'k': 'springe', 'v': 'n. 圈套 v. 设圈套'}, {'k': 'springs', 'v': 'n. 弹簧; 泉; 春( spring的名词复数 ); 跳 v. [口语]花(钱)(for)( sp'}]}
Requests对于JSON类型的响应数据可以直接获取:
response_post.json()