鱼C论坛

 找回密码
 立即注册
查看: 2381|回复: 8

54课问题求助

[复制链接]
发表于 2017-5-5 17:17:13 | 显示全部楼层 |阅读模式

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

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

x
  1. import urllib.request
  2. import urllib.parse
  3. url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'
  4. data = {}
  5. data['from'] = 'AUTO'
  6. data['to'] = 'AUTO'
  7. data['i'] = 'I love Fish.C!'
  8. data['client'] = 'fanyideskweb'
  9. data['salt'] = '1493967358817'
  10. data['sigh'] = '289c597a1678f15400544bae6132a49d'
  11. data['doctype'] = 'json'
  12. data['version'] = '2.1'
  13. data['keyfrom'] = 'fanyi.web'
  14. data['ue'] = 'UTF-8'
  15. data['typoResult'] = 'true'
  16. data = urllib.parse.urlencode(data).encode('utf-8')
  17. response = urllib.request.urlopen(url , data)
  18. html = response.read().decode('utf-8')
  19. print(html)
复制代码


出现的结果为>>>
{"errorCode":50}
>>>  附件是我用Google浏览器出现的结果
捕获.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-5 17:45:10 | 显示全部楼层
有道好像有反爬虫机制,需要加上headers属性伪装成浏览器
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 18:43:42 | 显示全部楼层
新房客 发表于 2017-5-5 17:45
有道好像有反爬虫机制,需要加上headers属性伪装成浏览器

这。。。好吧 谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 19:30:35 | 显示全部楼层
新房客 发表于 2017-5-5 17:45
有道好像有反爬虫机制,需要加上headers属性伪装成浏览器

我重新改了下代码 还是不行啊
  1. import urllib.request
  2. import urllib.parse
  3. url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'

  4. head = {}
  5. head['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36'

  6. data = {}
  7. data['from'] = 'AUTO'
  8. data['to'] = 'AUTO'
  9. data['i'] = 'I love Fish.C!'
  10. data['client'] = 'fanyideskweb'
  11. data['salt'] = '1493967358817'
  12. data['sigh'] = '289c597a1678f15400544bae6132a49d'
  13. data['doctype'] = 'json'
  14. data['version'] = '2.1'
  15. data['keyfrom'] = 'fanyi.web'
  16. data['ue'] = 'UTF-8'
  17. data['typoResult'] = 'true'
  18. data = urllib.parse.urlencode(data).encode('utf-8')
  19. response = urllib.request.urlopen(url , data)
  20. html = response.read().decode('utf-8')
  21. print(html)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 20:14:08 | 显示全部楼层
snakeshe 发表于 2017-5-5 19:30
我重新改了下代码 还是不行啊
  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. while True:
  5.     content = input("请输入需要翻译的内容:")
  6.     if content == 'q!':
  7.         print('程序结束!')
  8.         break
  9.     url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=dict2.index"
  10.     head = {}
  11.     head['Referer'] = 'http://fanyi.youdao.com'
  12.     head[
  13.         'User-Agent'] = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
  14.     data = {}
  15.     data['type'] = 'AUTO'
  16.     data['i'] = content
  17.     data['doctype'] = 'json'
  18.     data['xmlVersion'] = '1.8'
  19.     data['keyform'] = 'fanyi.web'
  20.     data['ue'] = 'UTF-8'
  21.     data['typoResult'] = 'ture'
  22.     data = urllib.parse.urlencode(data).encode('utf-8')

  23.     req = urllib.request.Request(url, data, head)
  24.     # print(type(req))
  25.     response = urllib.request.urlopen(req)
  26.     # print(type(response))
  27.     html = response.read().decode('utf-8')
  28.     target = json.loads(html)
  29.     print("%s \n翻译结果:\n%s" % (content, target['translateResult'][0][0]['tgt']))
复制代码


我记得小甲鱼直接有这个代码吧,为什么你们要加盐呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 20:46:18 From FishC Mobile | 显示全部楼层
snakeshe 发表于 2017-5-5 19:30
我重新改了下代码 还是不行啊

这个版本salt和sigh是动态的,类似于cookie,当次有效。不能用这种方法爬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 21:10:52 | 显示全部楼层
我是遇到这个问题,还打算发帖求助,看来现在是不用了。难道是有道反爬?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 21:59:10 | 显示全部楼层
ooxx7788 发表于 2017-5-5 20:14
我记得小甲鱼直接有这个代码吧,为什么你们要加盐呢?

http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null

不知道为什么,网址去掉红色的部分就成了。有红色部分的网址打开是一个json文件。但是request url又是这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-9-10 15:03:35 | 显示全部楼层
新房客 发表于 2017-5-5 21:59
http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null

不知道为 ...

大神啊,我的有道翻译问题解决了,就是因为这个'_o'。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 05:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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