自制一个随身翻译的exe文件

近期呢,在老师的帮助下学会了做一个随身翻译的小东西,还挺不错

主要是利用了一些基本爬虫技术,

requests库的基本使用。

random模块:随机获取一个指定范围内的随机数。

hashlib对js数据进行一个md5加密。

json数据转python数据的应用。

jsonpath解析出我们想要的结果。

还有就是time模块:1、来降低访问频率;2、用来获取使时间戳

这个主要要掌握的就是对js数据的分析,要具有逻辑。

以下是代码的呈现,欢迎各位大佬指导批评

import requests
import jsonpath
import time
import random
import hashlib

if __name__ == '__main__':
    while True:
        #输入要翻译的东西
        data_ = input("请输入你想要翻译的内容:")

        #确认url
        url_ = "https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"

        #设置请求头
        headers_ = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
            "Referer": "https://fanyi.youdao.com/",
            "Cookie": "OUTFOX_SEARCH_USER_ID=1383893629@10.110.96.160; OUTFOX_SEARCH_USER_ID_NCOO=801858250.6545407; JSESSIONID=aaaevB4DaSaT5fz2F5s_x; ___rl__test__cookies=1647437071968"
        }

        # lts:格林尼斯时间戳 >> int(time.time()*1000)  💡form表单时字符串类型的数据,需转化成字符串类型
        lts_ = str(int(time.time() * 1000))

        # salt : 格林尼斯时间戳 + 10以内的随机数 >> lts_ +   random.randint(0,9)    💡字符串与字符串才能相加
        salt_ = lts_ + str(random.randint(0,9))

        # sign: "fanyideskweb" + 需要翻译的数据 +  格林尼斯时间戳 + 10以内的随机数 + "Ygy_4c=r#e#4EX^NUGUc5"
        a = "fanyideskweb" + data_ +  salt_ + "Ygy_4c=r#e#4EX^NUGUc5"
        sign_ = hashlib.md5(a.encode()).hexdigest()


        form_data = {
            "i": data_,
            "from": "AUTO",
            "to": "AUTO",
            "smartresult": "dict",
            "client": "fanyideskweb",
            "salt": salt_,
            "sign": sign_,
            "lts": lts_,
            "bv": "c2777327e4e29b7c4728f13e47bde9a5",
            "doctype": "json",
            "version": "2.1",
            "keyfrom": "fanyi.web",
            "action": "FY_BY_CLICKBUTTION"
        }
        # 为了防止翻译的内容时不正确的单词,在这里抛出一个异常
        try:
            #发送请求
            response_ = requests.post(url_,headers=headers_,data=form_data)
            py_data = response_.json()

            #解析提取出所需要的数据
            res_ = jsonpath.jsonpath(py_data,"$..tgt")[0]
            print(f"翻译的结果是:{res_}")

        except:
            print("输入有误,请重新输入....")
            continue

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值