Python教程

python中requests发送POST请求—破解百度翻译案例

本文主要是介绍python中requests发送POST请求—破解百度翻译案例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

request.post()中的参数

Ajax

案例——百度翻译


继上一章 ——> python中requests发送GET请 ,下面说如何进行发送POST请求

request.post()中的参数

requests中发送post请求里面有几个基础的参数如下

requests.post(url=url,data=data,headers=headers)
  • data:请求所携带的参数,以字典的形式进行封装

Ajax

首先来说一下什么是Ajax,Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

我们应该有过这种体会,当我们在网页中搜索时,我们只要输上关键词,页面马上就会进行刷新查找然后显示结果,我们并没有点击查询按钮,而且它只是进行页面局部的刷新。这种现象就是利用的ajax技术

案例——百度翻译

我们知道了百度翻译利用的是ajax局部刷新的技术。所以我们得找到发送单词请求的那个数据所在url。按F12选择Fetch/XHR捕获ajax请求,填入单词。如下找到了发送单词的请求,请求地址为https://fanyi.baidu.com/sug,且是以post方式发送

 且携带的参数为 kw:hello

且返回的数据为一组json数据,可以使用response.json()获取json对象。若果使用response.text()的话获取到的就是下面的一串,像乱码一样的东西

编写代码

import requests
import json
url='https://fanyi.baidu.com/sug'
#进行UA伪装
headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}
#post请求参数处理
word= "hello"
data = {
    'kw':word
}

#发送请求
response = requests.post(url=url,data=data,headers=headers)
#只有响应数据类型为json, 才能使用response.json
text = response.json()
print(text)

#以json的格式保存字典形式的数据
filename = data['kw'] + '.json' 
with open(filename,'w',encoding='utf-8') as df:
    json.dump(response.json(),fp=df,ensure_ascii=False)  #因为我们拿到的这个dic_obj是中文的,中文是不能用ascii的

这篇关于python中requests发送POST请求—破解百度翻译案例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!