爬虫入门05——requests中的post请求
-
以百度翻译为例,我们如何输入内容后获取翻译后的结果呢
-
打开百度翻译的界面
-
右键单击后选择检查
-
点击网络
-
在翻译的框内输入内容,就以输入“你好”为例,
-
点击sug,点击标头,我们可以看见相关信息,如请求网址、请求方法、状态代码等
-
我们可以看见,请求方法为POST
-
还可以看见请求头User-Agent
-
点击载荷,其中的kw就是我们所输入的需要翻译的内容
-
点击预览可以看见其中有我们所需的翻译后的内容
-
通过代码来实现一下
#定义请求头信息
#请求头信息就为刚刚信息中的“User-Agent”
headers = {
'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0'
}
#post发送的数据
data = {'kw':'你好'}
#发起post请求,注意参数
res = requests.post(url = url,headers = headers,data = data)
#获取响应结果
code = res.status_code
#获取响应状态码
print(code)
print(res.text) #text输出的内容中文变成了编码
print(res.json()) #使用json,中文可以正常显示
#先判断状态码是否为200
if(code == 200):
print('请求成功!')
data = res.json()
#再判errno是否为0
if data['errno'] == 0:
print('响应成功!')
print(data)
#此时我们就需提取这一段数据中我们所需的内容
#data中是一个列表
k = data['data'][0]['k']
v = data['data'][0]['v'].split(';')[0]
#此时k就是我们输入的内容,v就是翻译后的结果
print(k,'======',v)