JS解密入门案例:python有道JS解密,做一个简单的翻译程序

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

本次使用知识点:

  1. 系统分析网页结构

  2. 动态数据抓包演示

  3. json数据解析

  4. JS解密

开发环境:

  • Python 3.8

  • Pycharm

  • Nodejs

模块使用:

  • requests >>> 主要用来发 送 HTTP 请求,属于内置,无需安装

  • execjs >>> 用来调用 js 的,第三方模块 需要安装

  • pprint >>> 用来格式化输出的模块,属于内置,无需安装

第三方模块安装:

win + R 输入cmd 输入安装命令 或 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

思路流程:

  1. 确定目标需求: 用python代码做一个简单的翻译程序

    当我们输入一个汉字/词 它给我们返回相对应的英文内容

    请求 http://fanyi.**/translate_o?smartresult=dict&smartresult=rule

    它会给我们返回一个json数据 这个json数据里面包含了翻译结果

    post 请求 需要我们提交一个data参数 才能获取数据

代码展示

import requests
import execjs 
import pprint
# 用python代码调用JS代码

while True:
    word = input('请输入你要翻译的内容(输入0即退出): ')
    if word == '0':
        break
    with open('有道翻译.js', mode='r', encoding='utf-8') as f:
        js_code = f.read()

    js_data = execjs.compile(js_code)
    # 调用JS函数
    sign = js_data.call('youdao', word)
    url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
    headers = {
        'Cookie': 'OUTFOX_SEARCH_USER_ID=-549589964@10.169.0.84; OUTFOX_SEARCH_USER_ID_NCOO=1098831190.3128111; JSESSIONID=aaaZq8sPFNGe-8DrHMZHx; ___rl__test__cookies=1616847597740',
        'Host': 'fanyi.youdao.com',
        'Origin': 'http://fanyi.youdao.com',
        'Referer': 'http://fanyi.youdao.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36',
    }
    源码/解答/教程+V:pytho8987
    data = {
        'i': word,
        'from': 'AUTO',
        'to': 'AUTO',
        'smartresult': 'dict',
        'client': 'fanyideskweb',
        'salt': sign['salt'],
        'sign': sign['sign'],
        'lts': sign['ts'],
        'bv': sign['bv'],
        'doctype': 'json',
        'version': '2.1',
        'keyfrom': 'fanyi.web',
        'action': 'FY_BY_REALTlME',
    }
    response = requests.post(url=url, data=data, headers=headers)
    # 数据解析 字典取值
    translate_result = response.json()['translateResult'][0][0]['tgt']
    print('翻译的内容结果是: ', translate_result)

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值