鱼C论坛

 找回密码
 立即注册
查看: 2210|回复: 1

Python实战的翻译问题

[复制链接]
发表于 2020-1-24 12:10:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问和小甲鱼上课一样的代码为什么得不出正确结果?
这是我的代码:
import urllib.request
import urllib.parse

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
data={}
data['i']='I love fishc.com!'
data['type']='AUTO'
data['doctype']= 'json'
data['xmlVersion']= '1.6'
data['keyfrom']='fanyi.web'
data['ue']='UTF-8'
data['typoResult']='true'
data = urllib.parse.urlencode(data).encode('utf-8')

response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')

print(html)


但是输出的结果都是{"errorCode":50}而没有翻译结果。。。。。。
请问这是为什么啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-26 13:04:00 | 显示全部楼层
python爬取有道翻译出错 {‘errorcode’:50}
按照链接的方法,将在审查元素中获得的url中translate后面的_o去掉。
结果是{"type":"EN2ZH_CN","errorCode":30,"elapsedTime":0,"translateResult":[[{"src":"您的请求来源非法,商业用途使用请关注有道翻译API官方网站\u201C有道智云\u201D: http:\/\/ai.youdao.com","tgt":"您的请求来源非法,商业用途使用请关注有道翻译API官方网站\u201C有道智云\u201D: http:\/\/ai.youdao.com"}]]}

这是因为有道翻译加强了反爬虫的策略。小甲鱼当时的代码可以,现在受限制了。
以下方法亲测可行
# -*- coding:utf-8 -*-
import requests

string = str(input("请输入一段要翻译的文字:"))
data = {
'doctype': 'json',
'type': 'AUTO',
'i':string
}
url = "http://fanyi.youdao.com/translate"
r = requests.get(url,params=data)
result = r.json()
print(result['translateResult'][0][0]['tgt'])








想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 12:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表