鱼C论坛

 找回密码
 立即注册
查看: 2116|回复: 4

[已解决]新手求教关于爬有道的相关问题

[复制链接]
发表于 2019-12-7 18:12:28 | 显示全部楼层 |阅读模式

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

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

x
1.为什么去掉_o运行起来后  返回442  点开 出现类似网页源代码好长一串  而不是json对象

2.尝试 用target['translateResult'][0][0]['tgt']确定键对应的值  运行后报错
错误代码为 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我的代码  :
import urllib.request as ur
import urllib.parse as up
import json

x=input('请输入要翻译的内容:')

url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data={}
data['i']:x
data['from']:'AUTO'
data['to']:'AUTO'
data['smartresult']:'dict'
data['client']:'fanyideskweb'
data['salt']:'15757123357604'
data['sign']:'db0c389f70262f7cc607927511ef3e0d'
data['ts']:'1575712335760'
data['bv']:'bbb3ed55971873051bc2ff740579bb49'
data['doctype']:'json'
data['version']:'2.1'
data['keyfrom']:'fanyi.web'
data['action']:'FY_BY_CLICKBUTTION'


data=up.urlencode(data).encode('utf-8')

a=ur.urlopen(url,data)

b=a.read().decode('utf-8')

target=json.loads(b)

print('翻译结果为:%s'% (target['translateResult'][0][0]['tgt']))

为难一下午了   !!!!还请大佬们不吝赐教!!!!!!!

最佳答案
2019-12-7 18:21:36
我用这段代码运行没有问题。

代码:

  1. import urllib.request as ur
  2. import urllib.parse as up
  3. import json

  4. x = input('请输入要翻译的内容:')
  5. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  6. data = {'i': x, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '15757123357604',
  7.         'sign': 'db0c389f70262f7cc607927511ef3e0d', 'ts': '1575712335760', 'bv': 'bbb3ed55971873051bc2ff740579bb49',
  8.         'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_CLICKBUTTION'}

  9. data = up.urlencode(data).encode('utf-8')
  10. a = ur.urlopen(url, data)
  11. b = a.read().decode('utf-8')
  12. target = json.loads(b)

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


运行结果:

  1. 请输入要翻译的内容:你好
  2. 翻译结果为:hello
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-7 18:21:36 | 显示全部楼层    本楼为最佳答案   
我用这段代码运行没有问题。

代码:

  1. import urllib.request as ur
  2. import urllib.parse as up
  3. import json

  4. x = input('请输入要翻译的内容:')
  5. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  6. data = {'i': x, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '15757123357604',
  7.         'sign': 'db0c389f70262f7cc607927511ef3e0d', 'ts': '1575712335760', 'bv': 'bbb3ed55971873051bc2ff740579bb49',
  8.         'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_CLICKBUTTION'}

  9. data = up.urlencode(data).encode('utf-8')
  10. a = ur.urlopen(url, data)
  11. b = a.read().decode('utf-8')
  12. target = json.loads(b)

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


运行结果:

  1. 请输入要翻译的内容:你好
  2. 翻译结果为:hello
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-12-7 18:27:21 | 显示全部楼层
zltzlt 发表于 2019-12-7 18:21
我用这段代码运行没有问题。

代码:

谢谢 大佬 看完你的代码 立刻发现了我的错误  我赋值的时候用的是冒号 不是等号 !!!
谢谢谢谢!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 18:30:47 | 显示全部楼层
本帖最后由 zltzlt 于 2019-12-7 18:35 编辑
xiaobaibucai 发表于 2019-12-7 18:27
谢谢 大佬 看完你的代码 立刻发现了我的错误  我赋值的时候用的是冒号 不是等号 !!!
谢谢谢谢!!! ...


@小甲鱼 请移动帖子到 Python 交流板块
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-9 21:32:33 | 显示全部楼层
楼主给人家一个最佳答案吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-1 11:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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