鱼C论坛

 找回密码
 立即注册
查看: 1974|回复: 1

[已解决]python爬虫部分问题求助

[复制链接]
发表于 2017-9-18 23:24:44 | 显示全部楼层 |阅读模式

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

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

x
我把小甲鱼老师课程里的代码写了一遍有道的翻译代码在自己的机子上跑,但总是被有道屏蔽访问,user agent也改过了,还是被屏蔽,求助

提示如下:
请输入需要翻译的内容(输入"q!"退出程序):love
翻译结果:您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com

代码如下
  1. import urllib.request
  2. import urllib.parse
  3. import json
  4. import time

  5. while True:
  6.     content = input('请输入需要翻译的内容(输入"q!"退出程序):')
  7.     if content =='q!':
  8.         break
  9.    
  10.    
  11.     url = 'http://fanyi.youdao.com/translate?smartresult=dic&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/'
  12.     head = {}
  13.     head['Use-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36'

  14.     data = {}
  15.     data['type'] = 'AUTO'
  16.     data['i'] = content
  17.     data['doctype'] = 'json'
  18.     data['xmlVersion'] = '1.6'
  19.     data['keyfrom'] = 'fanyi.web'
  20.     data['ue'] = 'UTF-8'
  21.     data['typoResult']= 'true'
  22.     data = urllib.parse.urlencode(data).encode('utf-8')

  23.     req = urllib.request.Request(url, data, head)
  24.     response = urllib.request.urlopen(req)
  25.     html = response.read().decode('utf-8')

  26.     target = json.loads(html)
  27.     print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))
  28.     time.sleep(5)

复制代码

最佳答案
2017-9-19 09:17:39
  1. import os,urllib.request
  2. import urllib.parse
  3. import json
  4. a = 5
  5. while a > 0:
  6.         txt = input('输入要翻译的内容!')
  7.         if txt == '0':
  8.                 break
  9.                
  10.         else:
  11.                 os.chdir('e:\\python')
  12.                 url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'

  13.                 data = {
  14.                 'from':'AUTO',
  15.                 'to':'AUTO',
  16.                 'smartresult':'dict',
  17.                 'client':'fanyideskweb',
  18.                 'salt':'1500092479607',
  19.                 'sign':'c98235a85b213d482b8e65f6b1065e26',
  20.                 'doctype':'json',
  21.                 'version':'2.1',
  22.                 'keyfrom':'fanyi.web',
  23.                 'action':'FY_BY_CL1CKBUTTON',
  24.                 'typoResult':'true'}

  25.                 data['i'] = txt

  26.                 data = urllib.parse.urlencode(data).encode('utf - 8')
  27.                 wy = urllib.request.urlopen(url,data)
  28.                 html = wy.read().decode('utf - 8')
  29.                 print(html)

  30.                 ta = json.loads(html)
  31.                 print('翻译结果: %s '% (ta['translateResult'][0][0]['tgt']))
  32.                 a = a - 1
  33.                
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-19 09:17:39 | 显示全部楼层    本楼为最佳答案   
  1. import os,urllib.request
  2. import urllib.parse
  3. import json
  4. a = 5
  5. while a > 0:
  6.         txt = input('输入要翻译的内容!')
  7.         if txt == '0':
  8.                 break
  9.                
  10.         else:
  11.                 os.chdir('e:\\python')
  12.                 url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'

  13.                 data = {
  14.                 'from':'AUTO',
  15.                 'to':'AUTO',
  16.                 'smartresult':'dict',
  17.                 'client':'fanyideskweb',
  18.                 'salt':'1500092479607',
  19.                 'sign':'c98235a85b213d482b8e65f6b1065e26',
  20.                 'doctype':'json',
  21.                 'version':'2.1',
  22.                 'keyfrom':'fanyi.web',
  23.                 'action':'FY_BY_CL1CKBUTTON',
  24.                 'typoResult':'true'}

  25.                 data['i'] = txt

  26.                 data = urllib.parse.urlencode(data).encode('utf - 8')
  27.                 wy = urllib.request.urlopen(url,data)
  28.                 html = wy.read().decode('utf - 8')
  29.                 print(html)

  30.                 ta = json.loads(html)
  31.                 print('翻译结果: %s '% (ta['translateResult'][0][0]['tgt']))
  32.                 a = a - 1
  33.                
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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