鱼C论坛

 找回密码
 立即注册
查看: 2766|回复: 7

关于Python爬虫有道翻译

[复制链接]
发表于 2017-10-23 16:05:04 | 显示全部楼层 |阅读模式

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

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

x
这是from data:
i:i love you
from:AUTO
to:AUTO
smartresult:dict
client:fanyideskweb
salt:1508743334678
sign:a7233486e0520d27e8a3893afa9db54b
doctype:json
version:2.1
keyfrom:fanyi.web
action:FY_BY_CLICKBUTTION
typoResult:true

这是我的代码:
import urllib.request
import urllib.parse

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
data = {}
data['type'] = 'AUTO'
data['i'] = 'i love you'
data['doctype'] = 'json'
data['version'] = '2.1'
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')

然后这是结果:
{"errorCode":50}

Process finished with exit code 0


我是用pycharm打的,跟在终端打结果是一样的,请问这个应该怎么解决?我用的是Python3.6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-23 17:55:01 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-26 10:55:18 | 显示全部楼层
新手·ing 发表于 2017-10-23 17:55
http://bbs.fishc.com/thread-93823-1-1.html

还是不行诶,返回一样的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-26 22:33:41 | 显示全部楼层
url = 网址  建议把translate_o?中的_o去掉试试  我遇到你的问题了  我去掉_o之后就没有问题了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-26 23:56:24 | 显示全部楼层
有道翻译的接口已经更新了,你需要自己抓然后重新写才行,下面是我抓的百度翻译的接口

QQ截图20171026235607.jpg

注:并不完美,可以自己完善
  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. head = {}
  5. head['Referer'] = 'http://fanyi.baidu.com/'
  6. head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'

  7. str = input("请输入需要翻译的内容:")

  8. url = "http://fanyi.baidu.com/langdetect"
  9. data = {}
  10. data['query'] = str
  11. data = urllib.parse.urlencode(data).encode('utf-8')
  12. req = urllib.request.Request(url, data, head)
  13. response =  urllib.request.urlopen(req)
  14. html = response.read().decode('utf-8')
  15. lan = json.loads(html)

  16. url = "http://fanyi.baidu.com/v2transapi"
  17. data = {}
  18. data['from'] =lan['lan']
  19. data['to'] = 'zh'
  20. data['query'] = str
  21. data['transtype'] = 'realtime'
  22. data['simple_means_flag'] = '3'

  23. data = urllib.parse.urlencode(data).encode('utf-8')
  24. req = urllib.request.Request(url, data, head)
  25. response = urllib.request.urlopen(req)
  26. html = response.read().decode('utf-8')
  27. target = json.loads(html)
  28. print("翻译结果:",  target['trans_result']['data'][0]['dst'])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-27 09:39:57 | 显示全部楼层
zengpeng001 发表于 2017-10-26 22:33
url = 网址  建议把translate_o?中的_o去掉试试  我遇到你的问题了  我去掉_o之后就没有问题了

请问_o是什么意思呢?为什么去掉之后就可以了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 17:54:59 | 显示全部楼层
baichen 发表于 2017-10-27 09:39
请问_o是什么意思呢?为什么去掉之后就可以了?

这是一个很方便的接口,只不过不公开,被大神发现了罢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 17:55:33 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-25 11:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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