鸿 鸿 2022-10-03 06:30 采纳率: 92.7%
浏览 15
已结题

未定义,咋解决,,bug位置找到了



import time
import requests
import random
import hashlib
import execjs

translate_url ='https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'



user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'

def get_translation_result(parameters):
    headers={ 'User-Agent': user_agent,
        'Host': 'fanyi.youdao.com',
        'Origin': 'https://fanyi.youdao.com',
        'Referer': 'https://fanyi.youdao.com/',
        'X-Requested-With': 'XMLHttpRequest',
        'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
        'Cookie': 'OUTFOX_SEARCH_USER_ID="-1848382357@10.169.0.84"; ___rl__test__cookies=1625907853887; OUTFOX_SEARCH_USER_ID_NCOO=132978720.55854891'

}
    response=requests.post(url=translate_url,headers=headers,data=parameters)
    result=response.json()['translateResult'][0][0]['tgt']
    return result


def get_parameters_by_python(query,translate_from,translate_to):
    Its=str(int(time.time()*1000))
    salt=Its+str(random.randint(0,9))
    sign="fanyideskweb"+query+salt+"Ygy_4c=r#e#4EX^NUGUc5"
    sign=hashlib.md5(sign.encode()).hexdigest()
    bv=hashlib.md5(user_agent.encode()).hexdigest()
    parameters={ 'i': query,
        'from': translate_from,
        'to': translate_to,
        'smartresult': 'dict',
        'client': 'fanyideskweb',
        'salt': salt,
        'sign': sign,
        'Its': Its,
        'bv': bv,
        'doctype': 'json',
        'version': '2.1',
        'keyfrom': 'fanyi.web',
        'action': 'FY_BY_REALTlME'

    }
    return parameters


def get_parameters_by_javascript(query,translate_from, translate_to):
    with open('有道.js','r',encoding='utf-8') as f:
        有道_js=f.read()
    params = execjs.compile(有道_js).call('get_params', query, user_agent)

    bv=hashlib.md5(user_agent.encode()).hexdigest()
    parameters = {
        'i': query,
        'from': translate_from,
        'to': translate_to,
        'smartresult': 'dict',
        'client': 'fanyideskweb',
        'salt': params['salt'],
        'sign': params['sign'],
        'lts': params['lts'],
        'bv': bv,
        'doctype': 'json',
        'version': '2.1',
        'keyfrom': 'fanyi.web',
        'action': 'FY_BY_REALTlME'
    }
    return parameters

def main():
    query=input("输入翻译的名字:")
    translate_from = translate_to = 'AUTO'
    param= get_parameters_by_javascript(query, translate_from, translate_to)
    result=get_translation_result(param)
    print("翻译结果是",result)

if __name__=='__main__':
    main()


img

未定义,怎么解决啊?,bug位置找到了,就是不知道咋解决

  • 写回答

1条回答 默认 最新

  • Ko-walski 2022-10-03 08:18
    关注

    你看你 '有道.js' 文件有没有 get_params这个方法

    想我这样是没问题的 然后我吧js放在文件也是没问题的
    所以你检查你的js

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月3日
  • 已采纳回答 10月3日
  • 创建了问题 10月3日

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化