鱼C论坛

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

[已解决]如下代码执行后,有道提示非法,怎么解

[复制链接]
发表于 2018-3-20 21:35:18 | 显示全部楼层 |阅读模式

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

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

x
  1. # p14_2.py

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

  5. content = input('请输入需要翻译的内容:')

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

  7. head = {}
  8. head['Referer'] = 'http://fanyi.youdao.com'
  9. head['User - Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0X - Requested - With: XMLHttpRequest'

  10. data = {}
  11. data['type'] = 'AUTO'
  12. data['i'] = 'I love FishC.com!'
  13. data['doctype'] = 'json'
  14. data['xmlVersion'] = '1.6'
  15. data['keyfrom'] = 'fanyi.web'
  16. data['ue'] = 'UTF - 8'
  17. data['typoResult'] = 'true'
  18. data = urllib.parse.urlencode(data).encode('utf - 8')

  19. req = urllib.request.Request(url, data, head)
  20. response = urllib.request.urlopen(req)
  21. html = response.read().decode('utf - 8')
  22. target = json.loads(html)

  23. print('翻译结果: %s' % (target['translateResult'][0][0]['tgt']))
复制代码
最佳答案
2018-3-20 22:16:26
  1. head['User - Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0X - Requested - With: XMLHttpRequest'
复制代码

这一句感觉不对,还有 'User-Agent'  里没有空格。
  1. data['ue'] = 'UTF - 8'
复制代码
  1. data = urllib.parse.urlencode(data).encode('utf - 8')
复制代码

这两句也“UTF-8” 也没有空格。
不过以上的都写对了还是不行,因为你的data少了数据。少了什么自己去有道看看吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-20 22:16:26 | 显示全部楼层    本楼为最佳答案   
  1. head['User - Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0X - Requested - With: XMLHttpRequest'
复制代码

这一句感觉不对,还有 'User-Agent'  里没有空格。
  1. data['ue'] = 'UTF - 8'
复制代码
  1. data = urllib.parse.urlencode(data).encode('utf - 8')
复制代码

这两句也“UTF-8” 也没有空格。
不过以上的都写对了还是不行,因为你的data少了数据。少了什么自己去有道看看吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-21 20:49:20 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-3-20 22:16
这一句感觉不对,还有 'User-Agent'  里没有空格。

我看了,和书上的一样。也对照了随书带的源代码,也一样。源代码执行也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 20:54:54 | 显示全部楼层
秋枫杉杉 发表于 2018-3-21 20:49
我看了,和书上的一样。也对照了随书带的源代码,也一样。源代码执行也不行

我叫你去有道看看是说去网站看而不是去看书,书上的代码有可能过时了,网站的代码经常更新的。就我所知,一个月前的有道网站的 data 都不止这些数据。随便说一个,from 你这里就没有。
尽信书不如无书。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-21 22:33:01 | 显示全部楼层
确认了是浏览的表单数据不同,Mozilla的data和Chrome差别很大
  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&smartresult=ugc&sessionFrom=http://www.youdao.com/'

  6. head = {}
  7. head['Referer'] = 'http://fanyi.youdao.com'
  8. head['User - Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0X-Requested-With: XMLHttpRequest'

  9. data = {}
  10. data['action'] = 'FY_BY_CLICKBUTTION'
  11. data['client'] = 'fanyideskweb'
  12. data['doctype'] ='json'
  13. data['from'] = 'AUTO'
  14. data['i'] = content
  15. data['keyfrom'] = 'fanyi.web'
  16. data['salt'] = '1521641694343'
  17. data['sign'] = 'aa06c20074b695b3c203e249da72b5e6'
  18. data['smartresult'] = 'dict'
  19. data['to'] = 'AUTO'
  20. data['typoResult'] = 'false'
  21. data['version'] = '2.1'
  22. data = urllib.parse.urlencode(data).encode('utf-8')

  23. # data = {}
  24. # data['type'] = 'AUTO'
  25. # data['i'] = 'I love FishC.com!'
  26. # data['doctype'] = 'json'
  27. # data['xmlVersion'] = '1.6'
  28. # data['keyfrom'] = 'fanyi.web'
  29. # data['ue'] = 'UTF - 8'
  30. # data['typoResult'] = 'true'
  31. # data = urllib.parse.urlencode(data).encode('utf - 8')

  32. req = urllib.request.Request(url, data, head)
  33. response = urllib.request.urlopen(req)
  34. html = response.read().decode('utf-8')
  35. target = json.loads(html)

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 07:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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