网络爬虫的秘密:百度翻译加密参数破解

本文详细介绍了如何破解百度翻译接口中的加密参数sign和token。通过浏览器开发者工具分析JS代码,找到生成这两个参数的方法,并利用pyexecjs在Python环境中执行JS,成功获取翻译请求所需的正确参数。
摘要由CSDN通过智能技术生成

一、小试牛刀

在上课的时候,百度翻译之前的那个简单的接口,需要你多次尝试之后才能出来,其实只要我们打开network中的XHR就可以查看到。

步骤1:浏览器打开:fanyi.baidu.com, 按键顺序 F12>>>Network>>>XHR。

img

步骤2:输入job(在输入过程中会不断请求服务器),例如输入"j"时请求,”jo“时请求,"job"时也在请求,如下图:

image-20210320194638458

步骤3:点开第3个我们可以看到url、请求方式、和请求数据。

img

步骤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 工作环境与基本技能'}

二、秘密翻译接口的参数破解

上面的你们是不是感觉太简单了点,不要着急!下面这个接口请求参数才是最难破解的直接上图。

img

这个接口里面最难获取的参数就是sign和token。

1、破解sign

**步骤1:**ctrl+F打开搜索框搜索“sign”, 找到sign所在的文件 index_e36080d.js

image-20210320194655271

步骤2: 我们发现他是个js文件,所以我们在Sources中打开index_e36080d.js。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值