鱼C论坛

 找回密码
 立即注册
查看: 19997|回复: 27

[已解决]{"errorCode":50} 的解决办法

[复制链接]
发表于 2017-9-18 20:23:57 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 skafjdsdhfh 于 2017-9-18 20:52 编辑

大家好,之前重复下载猫咪图片和有道翻译的时候出现{"errorCode":50}。

今天在某网里面看到有人说只要去除url里面的_o字段,就可以解决问题。

试了一下可以使用,高兴的振臂欢呼。

基于大部分人都看过视频中老师的教学代码,所以下面贴出来的代码大家可以选择性忽略

  1. import urllib.request
  2. import urllib.parse

  3. url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom='

  4. data = {'i':'有道',
  5.         'from':'AUTO',
  6.         'to':'AUTO',
  7.         'smartresult':'dict',
  8.         'client':'fanyideskweb',
  9.         'salt':'1505653077725',
  10.         'sign':'467d88b4cdc9c6adca72855020b6a1e8',
  11.         'doctype':'json',
  12.         'version':'2.1',
  13.         'keyfrom':'fanyi.web',
  14.         'action':'FY_BY_CLICKBUTTION',
  15.         'typoResult':'true'}

  16. data = urllib.parse.urlencode(data).encode('utf-8')

  17. r = urllib.request.urlopen(url,data)

  18. html = r.read().decode('utf-8')

  19. print(html)
复制代码



以上只是把url中的_o给删除就可以重复老师的结果了。

我的问题是:1、为什么这样就可以?
                    2、字典信息和头部信息的内容太多,可以使用老师之前介绍pickle的方式吗?




~~~~~20:48 updata~~~~~~

太过于得意忘形。照老师接下来的代码再次出错。无论翻译什么词语都只会返回“内容”两个字!!!

  1. import urllib.request
  2. import urllib.parse
  3. import json


  4. content = input('请输入需要翻译的词语:')

  5. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom='

  6. data = {'i':'content',
  7.         'from':'AUTO',
  8.         'to':'AUTO',
  9.         'smartresult':'dict',
  10.         'client':'fanyideskweb',
  11.         'salt':'1505653077725',
  12.         'sign':'467d88b4cdc9c6adca72855020b6a1e8',
  13.         'doctype':'json',
  14.         'version':'2.1',
  15.         'keyfrom':'fanyi.web',
  16.         'action':'FY_BY_CLICKBUTTION',
  17.         'typoResult':'true'}

  18. data = urllib.parse.urlencode(data).encode('utf-8')

  19. r = urllib.request.urlopen(url,data)

  20. html = r.read().decode('utf-8')

  21. target = json.loads(html)

  22. print('翻译结果是:%s'%(target['translateResult'][0][0]['tgt']))
复制代码



没有报错。不知道怎么办。我再也不敢随便高兴了。(′°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)  


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

使用道具 举报

发表于 2017-9-18 21:27:04 | 显示全部楼层    本楼为最佳答案   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-18 21:35:54 | 显示全部楼层
本帖最后由 skafjdsdhfh 于 2017-9-18 21:37 编辑


。。。。。是可以使用没有错。

鬼先生写的代码里面import了一个hashlib。我不知道那是什么?

而且:
  1.   m = hashlib.md5()
  2.     d = '翻译'
  3.     u = 'fanyideskweb'
  4.     f = str(int(time.time()*1000))
  5.     c = "rY0D^0'nM0}g5Mm1z%1G4"
  6.     m.update((u + d + f + c).encode('utf-8'))
复制代码


这一段是干什么用的?  请问我要不要去翻文库啊?


谢谢告知,(如果fishC中有hashlib的中文解释,也麻烦告诉我一下,全篇英文就算现在看着还是害怕啊!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 21:36:53 | 显示全部楼层
skafjdsdhfh 发表于 2017-9-18 21:35
。。。。。是可以使用没有错。

鬼先生写的代码里面import了一个hashlib。我不知道那是什么?

说真的不也不懂
这个,,,一个Python内置库
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-18 21:38:39 | 显示全部楼层
新手·ing 发表于 2017-9-18 21:36
说真的不也不懂
这个,,,一个Python内置库

那么我还是硬着头皮去翻文档好了,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 21:39:03 | 显示全部楼层
skafjdsdhfh 发表于 2017-9-18 21:38
那么我还是硬着头皮去翻文档好了,谢谢你!

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

使用道具 举报

发表于 2017-12-1 18:00:00 | 显示全部楼层
本帖最后由 何处是天涯 于 2017-12-1 18:01 编辑

import urllib.request
import urllib.parse
import json


content = input('请输入需要翻译的词语:')

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom='

data = {'i':content,
        'from':'AUTO',
        'to':'AUTO',
        'smartresult':'dict',
        'client':'fanyideskweb',
        'salt':'1505653077725',
        'sign':'467d88b4cdc9c6adca72855020b6a1e8',
        'doctype':'json',
        'version':'2.1',
        'keyfrom':'fanyi.web',
        'action':'FY_BY_CLICKBUTTION',
        'typoResult':'true'
        }

data = urllib.parse.urlencode(data).encode('utf-8')

r = urllib.request.urlopen(url,data)

html = r.read().decode('utf-8')

target = json.loads(html)

print('翻译结果是:%s'%(target['translateResult'][0][0]['tgt']))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2017-12-1 18:07:55 | 显示全部楼层
解决方法总结起来就两点:
第一种只是把url中的_o给删除就可以,需要注意的是在设置外部输入变量content时,在字典中的i键的值content应该不要单引号。
第二种是《用Python破解有道翻译反爬虫机制》里所说的导入hashlib模块和random产生md5时间戳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-12-1 18:08:43 | 显示全部楼层
何处是天涯 发表于 2017-12-1 18:00
import urllib.request
import urllib.parse
import json

楼主,问题已经解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-24 18:42:02 | 显示全部楼层
何处是天涯 发表于 2017-12-1 18:00
import urllib.request
import urllib.parse
import json

对不起,这么长时间才回复你。我之前已经设置过最佳答案了,想把最佳答案给你,但是搞不定,无论如何都谢谢你。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 14:40:32 | 显示全部楼层
为什么去掉_o就可以。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-12 16:08:11 | 显示全部楼层
这个_o?有人解释一下吗。。另外我发现这个字典里其实光放进 i 和 doctype就可以、、别的不放也一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-18 16:10:53 | 显示全部楼层
我也想请问各位,那个"_o"是什么情况,麻烦知道的可否告知一下。
至于那个翻译内容不变的可能是这里“data['i'] = content”,里面的content是变量,如果用单引号就固定了值,变量才会根据每次的输入来判定翻译吧。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-4 20:31:29 | 显示全部楼层
{'i':'content'  这里的字典第一个元素的值是你翻译的值 不是字符串content呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-15 20:28:14 | 显示全部楼层
我也想请问各位,那个"_o"是什么情况,麻烦知道的可否告知一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-3 10:54:14 | 显示全部楼层
http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
带-o 的网址,复制的浏览器,显示:{"errorCode":50}

去掉-o就正常了.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-14 10:54:43 | 显示全部楼层
返回内容两个字,是因为,data['i'] = 'content',你去掉content的单引号就行了,不然的话,他就是对content进行翻译了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 18:15:41 | 显示全部楼层
天哪,你们难道没有发现楼主这个显而易见的问题吗,他的content变量在data里加了单引号,这当然只能翻译出内容两个字了,因为一直传递的参数就是conten这个英文。。。。。。。。。。
正确代码在这里
import urllib.request
import urllib.parse
import json

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
content=input('请输入你需要翻译的内容:')
data = {'i':content,
        'from':'AUTO',
        'to':'AUTO',
        'smartresult':'dict',
        'client':'fanyideskweb',
        'salt':'1505653077725',
        'sign':'467d88b4cdc9c6adca72855020b6a1e8',
        'doctype':'json',
        'version':'2.1',
        'keyfrom':'fanyi.web',
        'action':'FY_BY_CLICKBUTTION',
        'typoResult':'true'}

data = urllib.parse.urlencode(data).encode('utf-8')
r = urllib.request.urlopen(url,data)
html = r.read().decode('utf-8')
target=json.loads(html)
print('翻译结果是:%s'%(target['translateResult'][0][0]['tgt']))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-13 18:21:41 | 显示全部楼层
何处是天涯 发表于 2017-12-1 18:07
解决方法总结起来就两点:
第一种只是把url中的_o给删除就可以,需要注意的是在设置外部输入变量content时 ...

额,刚才没仔细往下翻,您这是正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-18 20:37:31 | 显示全部楼层
”您的请求来源非法,商业用途使用请关注有道翻译API官方网站\u201C有道智云“怎么办
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 15:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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