一、小试牛刀
在上课的时候,百度翻译之前的那个简单的接口,需要你多次尝试之后才能出来,其实只要我们打开network中的XHR就可以查看到。
步骤1:浏览器打开:fanyi.baidu.com, 按键顺序 F12>>>Network>>>XHR。
步骤2:输入job(在输入过程中会不断请求服务器),例如输入"j"时请求,”jo“时请求,"job"时也在请求,如下图:
步骤3:点开第3个我们可以看到url、请求方式、和请求数据。
步骤4:我们开始写爬虫程序。
由于我们已经看到这个接口获取翻译结果需要的参数很简单,我们就以翻译“job”为例写爬虫程序。
import requests
import json
def baidu_fanyi(kw):
"""
:param kw: 要查的单词 :return:
"""
# m目标url
base_url = "https://fanyi.baidu.com/sug"
data = {"kw":kw}
# 发起请求,返回响应
response = requests.post(base_url,data= data)
# 获取json数据
# 第一种 处理json数据
json_data= response.json()
# print(json_data)
data_list = json_data["data"]
for dict_data in data_list:
print(dict_data)
if __name__ == '__main__':
baidu_fanyi("job")
运行结果是:
{'k': 'job', 'v': 'n. 职业; (一件)工作; 职责; (作为一个单元处理的)作业 vt. 承包; 代客买卖 vi. '}
{'k': 'Jobo', 'v': '[地名] [厄瓜多尔] 霍沃'}
{'k': 'jobs', 'v': 'n. 职业; (一件)工作( job的名词复数 ); 职责; (作为一个单元处理的)作业'}
{'k': 'Jobs', 'v': '[人名] 乔布斯'}
{'k': 'JOBS', 'v': 'abbr. Job Opportunities and Basic Skills 工作环境与基本技能'}{'k': 'job', 'v': 'n. 职业; (一件)工作; 职责; (作为一个单元处理的)作业 vt. 承包; 代客买卖 vi. '}{'k': 'Jobo', 'v': '[地名] [厄瓜多尔] 霍沃'}{'k': 'jobs', 'v': 'n. 职业; (一件)工作( job的名词复数 ); 职责; (作为一个单元处理的)作业'}{'k': 'Jobs', 'v': '[人名] 乔布斯'}{'k': 'JOBS', 'v': 'abbr. Job Opportunities and Basic Skills 工作环境与基本技能'}
二、秘密翻译接口的参数破解
上面的你们是不是感觉太简单了点,不要着急!下面这个接口请求参数才是最难破解的直接上图。
这个接口里面最难获取的参数就是sign和token。
1、破解sign
**步骤1:**ctrl+F打开搜索框搜索“sign”, 找到sign所在的文件 index_e36080d.js
步骤2: 我们发现他是个js文件,所以我们在Sources中打开index_e36080d.js。