欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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. 需求

输入单词,可获取百度翻译栏中的翻译信息
requests实战——获取百度翻译的翻译信息

2. 对百度翻译的过程进行分析

打开页面后,打开抓包工具。在百度翻译的输入栏中输入dog,查看到Network中抓取的信息。(页面进行了局部刷新,此方式由阿贾克斯请求可以实现,因此分析阿贾克斯请求到的数据即可,分析XHR[阿贾克斯请求所对应的数据包])
在XHR中的第一个sug中kw为报文传输来的参数数据d,第二个为do,第三个为dog。因此从第三个sug进行分析处理。
requests实战——获取百度翻译的翻译信息
该sug为POST请求,目标的URL为https://fanyi.baidu.com/sug
requests实战——获取百度翻译的翻译信息
获取到的Response为json类型的字典对象数据
requests实战——获取百度翻译的翻译信息
requests实战——获取百度翻译的翻译信息

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. 实现效果

requests实战——获取百度翻译的翻译信息
requests实战——获取百度翻译的翻译信息

本文地址:https://blog.csdn.net/qq_41094332/article/details/108243769