requests实战——获取百度翻译的翻译信息
程序员文章站
2022-09-21 08:31:50
需求:输入单词,可获取百度翻译栏中的翻译信息对百度翻译的过程进行分析:打开页面后,打开抓包工具。在百度翻译的输入栏中输入dog,查看到Network中抓取的信息。在XHR中的第一个sug中kw为d,第二个为do,第三个为dog。因此从第三个sug进行分析处理。该sug为POST请求,目标的URL为https://fanyi.baidu.com/sug获取到的Response为json类型的字典对象数据代码:import requestsimport jsoni.....
requests实战——获取百度翻译的翻译信息
1. 需求
输入单词,可获取百度翻译栏中的翻译信息
2. 对百度翻译的过程进行分析
打开页面后,打开抓包工具。在百度翻译的输入栏中输入dog,查看到Network中抓取的信息。(页面进行了局部刷新,此方式由阿贾克斯请求可以实现,因此分析阿贾克斯请求到的数据即可,分析XHR[阿贾克斯请求所对应的数据包])
在XHR中的第一个sug中kw为报文传输来的参数数据d,第二个为do,第三个为dog。因此从第三个sug进行分析处理。
该sug为POST请求,目标的URL为https://fanyi.baidu.com/sug
获取到的Response为json类型的字典对象数据
3. 代码
import requests import json if __name__ == "__main__": # 指定url
post_url = 'https://fanyi.baidu.com/sug' # 进行UA伪装
headers = { 'User-Agent':'Mozilla/......' } # post请求参数处理(同get请求一致)
word = input('enter a word:') data = { 'kw':word } # 请求发送
response = requests.post(url=post_url, data=data, headers=headers) # 获取响应数据:使用.text返回字符串数据,使用json()方法返回的是obj(一个字典对象)(若确认响应数据是json类型的,才可以使用json方法进行返回)
dic_obj = response.json() print(dic_obj) # 进行持久化存储
fileName = word + '.json' with open(fileName,'w',encoding='utf-8') as fp: json.dump(obj=dic_obj, fp=fp, ensure_ascii=False) print("over!")
4. 实现效果
本文地址:https://blog.csdn.net/qq_41094332/article/details/108243769
上一篇: 梭子蟹蒸多久?怎样做才可以使蟹达到美味?
下一篇: 逗B男女,张口就让你爆笑