鱼C论坛

 找回密码
 立即注册
查看: 1602|回复: 10

[已解决]爬虫 有道词典翻译{"errorCode":50}

[复制链接]
发表于 2019-4-9 15:04:01 | 显示全部楼层 |阅读模式
20鱼币
import urllib.request
import urllib.parse
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
data = {'i': 'i love constrution',
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': '15547863212148',
'sign': '13d6cdc8e06431ad0d0ca4008f877aac',
'ts': '1554786321214',
'bv': 'd6c3cd962e29b66abe48fcb8f4dd7f7d',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_CLICKBUTTION'}

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

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

print(html)



麻烦大神帮我看下这个有什么问题,运行产生 {"errorCode":50}
最佳答案
2019-4-9 15:04:02
url里面的?前面的_o去掉试试

最佳答案

查看完整内容

url里面的?前面的_o去掉试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 15:04:02 | 显示全部楼层    本楼为最佳答案   
url里面的?前面的_o去掉试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 15:20:43 | 显示全部楼层
小甲鱼的代码已经不能用了,之前写过一个翻译器,支持有道,百度和Google翻译,源码在这:
https://github.com/CharlesPikachu/Tools/tree/master/Translator
有道翻译部分:
  1. class youdao():
  2.         def __init__(self):
  3.                 self.headers = {
  4.                                                 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
  5.                                                 'Referer': 'http://fanyi.youdao.com/',
  6.                                                 'Cookie': 'OUTFOX_SEARCH_USER_ID=-481680322@10.169.0.83;'
  7.                                         }
  8.                 self.data = {
  9.                                                 'i': None,
  10.                                                 'client': 'fanyideskweb',
  11.                                                 'keyfrom': 'fanyi.web',
  12.                                                 'salt': None,
  13.                                                 'sign': None
  14.                                         }
  15.                 self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
  16.         def translate(self, word):
  17.                 t = str(time.time()*1000 + random.randint(1, 10))
  18.                 self.data['i'] = word
  19.                 self.data['salt'] = t
  20.                 sign = 'fanyideskweb' + word + t + '6x(ZHw]mwzX#u0V7@yfwK'
  21.                 self.data['sign'] = hashlib.md5(sign.encode('utf-8')).hexdigest()
  22.                 res = requests.post(self.url, headers=self.headers, data=self.data)
  23.                 return res.json()['translateResult']
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 15:25:54 | 显示全部楼层

  1. import urllib.request
  2. import urllib.parse
  3. url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
  4. data = {'i': 'i love constrution',
  5. 'from': 'AUTO',
  6. 'to': 'AUTO',
  7. 'smartresult': 'dict',
  8. 'client': 'fanyideskweb',
  9. 'salt': '15547863212148',
  10. 'sign': '13d6cdc8e06431ad0d0ca4008f877aac',
  11. 'ts': '1554786321214',
  12. 'bv': 'd6c3cd962e29b66abe48fcb8f4dd7f7d',
  13. 'doctype': 'json',
  14. 'version': '2.1',
  15. 'keyfrom': 'fanyi.web',
  16. 'action': 'FY_BY_CLICKBUTTION'}

  17. headers={
  18. 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  19.     #cookie不清楚,会不会过期
  20. 'Cookie': '_ntes_nnid=f6de4aa742adbcaa378aa274653f22c9,1553844078806; OUTFOX_SEARCH_USER_ID_NCOO=1850912539.8484268; OUTFOX_SEARCH_USER_ID=1821250315@112.31.21.81; JSESSIONID=aaa4hVOO16K8Yhdjm_aOw; ___rl__test__cookies=1554794481617',
  21. 'Host': 'fanyi.youdao.com',
  22. 'Origin': 'http://fanyi.youdao.com',
  23. 'Referer': 'http://fanyi.youdao.com/',
  24. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',
  25. 'X-Requested-With': 'XMLHttpRequest'

  26. }
  27. data = urllib.parse.urlencode(data).encode('utf-8')
  28. req = urllib.request.Request(url, headers=headers)
  29. response = urllib.request.urlopen(req,data)
  30. html = response.read().decode('utf-8')

  31. print(html)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 15:54:26 | 显示全部楼层
去掉_o 问题解决。我遇到类似的。百度的结果是有道有做反爬,把_o去掉就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 19:07:56 | 显示全部楼层
  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. conten = input('请输入要翻译得内容:')

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

  6. data = {}
  7. data['from'] = 'AUTO'
  8. data['to'] = 'AUTO'
  9. data['smartresult'] = 'dict'
  10. data['client'] = 'fanyideskweb'
  11. data['salt'] = '15472754093144'
  12. data['sign'] = '90d8a9fafba3351741b9f7c4aba7f1c9'
  13. data['ts'] = '1547275409314'
  14. data['bv'] = '8d165ec21fcdbdde58f225cd72fd33e4'
  15. data['doctype'] = 'json'
  16. data['version'] = '2.1'
  17. data['keyfrom'] = 'fanyi.web'
  18. data['action'] = 'FY_BY_CLICKBUTTION'
  19. data['typoResult'] = 'false'
  20. data['i'] = conten
  21. data = urllib.parse.urlencode(data).encode('utf-8')

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

  24. html = json.loads(html)['translateResult'][0][0]['tgt']

  25. print('翻译的结果是:%s' % html)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 19:28:40 | 显示全部楼层
去掉_o就行了
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
改为
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 21:32:28 | 显示全部楼层
把_o去掉的话,告诉你你的爬虫违规
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-20 21:32:51 | 显示全部楼层
Ayluc 发表于 2019-4-9 19:28
去掉_o就行了
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
改为

为什么去掉_o就可以了呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-20 23:56:16 From FishC Mobile | 显示全部楼层
+1  为什么去掉_o就可以了呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-14 11:19:26 | 显示全部楼层
zero帽宝宝 发表于 2019-4-20 23:56
+1  为什么去掉_o就可以了呀

人家把地址加密了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 05:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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