一、学习目标
1、通过百度翻译,输入一个关键字能够得到其翻译的结果,例如
二、解决思路
1、导入模块
import requests import json
2、准备url 【https://fanyi.baidu.com】,在表单中输入dog后,可以F12,然后网络中选择XHR,观察数据请求的过程;得到请求方式为POST,其中请求链接是https://fanyi.baidu.com/sug,如下图:
3、POST请求一般会携带参数,在网页中请求中看到kw:"dog",其中参数一般都是以字典的形式出现,kw:"dog",然后再看响应的结果,如下图所示
4、从上面的分析可以看到,响应的数据中有需要的数据,只需要拿到这些数据即可
三、代码实例
import requests import json if __name__ =="__main__": url = 'https://fanyi.baidu.com/sug' #处理url携带参数:封装到字典中 word = input("请输入要翻译的单词: ") params = { 'kw':word } #UA伪装 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53" } #对指定的url发起的请求是携带参数的 response = requests.post(url=url,data=params ,headers=headers) dic_obj =response.json() #返回字典 flie_name = word + '.json' # 保存数据 fp = open(flie_name,mode='w',encoding='utf-8') fp_str = json.dumps(dic_obj,ensure_ascii=False) with open(flie_name,'w',)as f: f.write(fp_str) print('over')
其中,dic_obj返回的数据,下面的数据可以通过字典所学的方式来获取
获取json中字典中的元素方式:
dic_obj =response.json() #返回字典 print(dic_obj["data"]) #获取data数据 print(dic_obj["data"][1]) #获取第2个object print(dic_obj["data"][1]["k"]) #获取2个字典的值标签:翻译,p1,obj,url,dic,json,data,百度,字典 From: https://www.cnblogs.com/zp513/p/17947993