ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

大胆尝试js逆向--最简单的翻译逆向

2021-08-03 20:31:59  阅读:180  来源: 互联网

标签:逆向 -- smartresult js headers json url data response


以有道翻译为例子

1.先找到url

.
在这里插入图片描述

start_url='https://fanyi.youdao.com/translate_osmartresult=dict&smartresult=rule'

其实这里是有加密的,但是重点不在这,所以我直接给出解决方法了:

start_url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'.replace('_o', '')

是不是很简单,哈哈哈哈。

简单但是有效。

2.模拟浏览器进行欺骗

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/87.0.4280.66 Safari/537.36'
    }

这一步是核心

3.构建表单大字典

在这里插入图片描述
由此假设我们输入的是单词为word(当然句子同理),大字典如下:

word = input(r'请输入要翻译的词语:')
        form_data = {
            "i": word,
            "from": "AUTO",
            "to": "AUTO",
            "smartresult": "dict",
            "client": "fanyideskweb",
            "salt": "16110565853966",
            "sign": "ac9e6a1ad007208044975e79cab12b10",
            "lts": "1611056585396",
            "bv": "7b07590bbf1761eedb1ff6dbfac3c1f0",
            "doctype": "json",
            "version": "2.1",
            "keyfrom": "fanyi.web",
            "action": "FY_BY_REALTlME",
        }

4.进行数据请求

response = requests.post(start_url, headers=headers, data=form_data).content.decode()
pprint(response)

输入这是一只小狗,得到

('                          '
 '{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":12,"translateResult":[[{"src":"这是一只小狗","tgt":"This '
 'is a small dog"}]]}\n')

观察下他的数据类型
在这里插入图片描述

我们要把它转为json数据

## json_str = json.loads(response)

5.输出结果

最后一步就是取值了。

result = json_str["translateResult"][0][0]["tgt"]
        print(f'翻译的结果是:{result}')

完成!!!
在这里插入图片描述

最后代码:

import requests, json
from pprint import pprint

def main():
    # 1、url + headers
    start_url = r'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'.replace('_o', '')
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/87.0.4280.66 Safari/537.36'
    }

    # 2、post表单数据  使用正则 自动添加""
    while True:
        word = input(r'请输入要翻译的词语:')
        form_data = {
            "i": word,
            "from": "AUTO",
            "to": "AUTO",
            "smartresult": "dict",
            "client": "fanyideskweb",
            "salt": "16110565853966",
            "sign": "ac9e6a1ad007208044975e79cab12b10",
            "lts": "1611056585396",
            "bv": "7b07590bbf1761eedb1ff6dbfac3c1f0",
            "doctype": "json",
            "version": "2.1",
            "keyfrom": "fanyi.web",
            "action": "FY_BY_REALTlME",
        }

        # 3、响应
        response = requests.post(start_url, headers=headers, data=form_data).content.decode()
        pprint(type(response))

        # 4、将json数据变成python对象
        json_str = json.loads(response)
        # pprint(json_str)

        # 5、使用字典知识提取数据
        result = json_str["translateResult"][0][0]["tgt"]
        print(f'翻译的结果是:{result}')
if __name__ == '__main__':
    main()

标签:逆向,--,smartresult,js,headers,json,url,data,response
来源: https://blog.csdn.net/weixin_52118017/article/details/119357912

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有