百度翻译破解

破解百度翻译

1、页面基本信息

打开对应页面:直接搜索”百度翻译“,打开百度翻译如图;
在这里插入图片描述

需求:获取某个单词或句子的翻译结果

键入要翻译的关键字后,页面局部刷新(依旧使用的是AJAX)
在这里插入图片描述

2、数据抓包

  • 进入XHP页面获取Ajax实际请求地址及相关参数
    在这里插入图片描述

  • 看到几个响应,分析请求的规律注意区分
    在这里插入图片描述
    在这里插入图片描述

  • 切换到Headers找到是cat的那个请求,可以看到请求的url、请求方式和返回的数据类型都有了
    在这里插入图片描述

  • 继续往下看,post传出的是什么样的数据。最下方可以看到传出数据的形式为 key —> kw, value —> cat
    在这里插入图片描述

3、统计信息

url:= ‘https://fanyi.baidu.com/sug’

对应的请求:post请求

响应的数据类型:json数据类型

url携带的参数:kw: cat

4、实战编码

import requests
import json

# 指定url
post_url = 'https://fanyi.baidu.com/sug'

# url携带的参数进行处理:post请求参数进行处理(同get请求一致)
p = input("输入单词或句子:")
data = {
    'kw': p
}

# 进行UA伪装:将对应User-Agent封装到字典中
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

# 发送请求
request = requests.post(url=post_url, data=data, headers=headers)

# 获取响应数据:json方法返回的是一个obj(如果确认响应数据是json类型的,才可以使用json())
dic_obj = request.json()

# 保存数据
fileName = p+'.json'
fp = open(fileName, 'w', encoding='utf-8')
json.dump(aic_obj, fp=fp, ensure_ascii=False)  # 默认使用的是编码是ASCII,而中文为Unicode编码,ASCII中不包含中文,能否正常显示中文,要加入参数ensure_ascii=False即可。
print('获取成功!')

5、代码详细解释

1.导入模块

import requests
import json

2.指定对应的url,对携带的参数进行处理,并进行UA伪装

# 指定url
post_url = 'https://fanyi.baidu.com/sug'

# url携带的参数进行处理:post请求参数进行处理(同get请求一致)
p = input("输入单词或句子:")
data = {
    'kw': p
}

# 进行UA伪装:将对应User-Agent封装到字典中
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

在这里插入图片描述

3.基于requests发送请求,通过前面抓包得到的信息我们得到了,它的请求方式为post请求,这里我们使用requests模块中post()方法来发送请求

request = requests.post(url=url)

4.获取响应数据。通过前面的数据分析我们得到了它响应回来的数据类型为json类型
在这里插入图片描述

dic_obj = request.json  # 使用json方法返回的是一个obj(如果确认响应数据是json类型的,才可以使用json())

5.进行持久化存储,将数据存储为json文本文档

fileName = p+'.json'
fp = open(fileName, 'w', encoding='utf-8')
json.dump(aic_obj, fp=fp, ensure_ascii=False)  # 默认使用的是编码是ASCII,而中文为Unicode编码,ASCII中不包含中文,能否正常显示中文,要加入参数ensure_ascii=False即可。
print('获取成功!')

也可这样写,使用with语句来保存数据:

with open(s, 'w', encoding='utf-8') as bc:
    json.dump(hq, bc, ensure_ascii=False)
print('获取成功!')

with open(s, 'w', encoding='utf-8') as bc:
    json.dump(hq, bc, ensure_ascii=False)
print('获取成功!')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗梦骇客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值