鱼C论坛

 找回密码
 立即注册
查看: 758|回复: 0

[技术交流] 爬取翻译页面:百度、有道翻译合集

[复制链接]
发表于 2018-7-20 20:46:34 | 显示全部楼层 |阅读模式

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

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

x
  1. import json
  2. import urllib.request,urllib.parse

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

  4. youdao_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  5. baidu_url = 'http://fanyi.baidu.com/basetrans'

  6. data1 = {'i':content,
  7.          'from':'AUTO',
  8.          'to':'AUTO',
  9.          'smartresult':'dict',
  10.          'client':'fanyideskweb',
  11.          'salt':'1531294788999',
  12.          'sign':'afc2c49fe8baf75df6d4497f50ffceaf',
  13.          'doctype':'json',
  14.          'version':'2.1',
  15.          'keyfrom':'fanyi.web',
  16.          'action':'FY_BY_CLICKBUTTION',
  17.          'typoResult':'false'}
  18. data1 = urllib.parse.urlencode(data1).encode('utf-8')

  19. detec_url = 'http://fanyi.baidu.com/langdetect'
  20. detec_data = {'query':content}
  21. detec_data = urllib.parse.urlencode(detec_data).encode('utf-8')
  22. detec_resp = urllib.request.urlopen(detec_url,detec_data)
  23. detec_result = json.loads(detec_resp.read().decode('utf-8'))
  24. lang = detec_result['lan']

  25. if lang == 'zh':
  26.     transto = 'en'
  27. else:
  28.     transto = 'zh'
  29.    
  30. data2 = {'from':lang,
  31.          'to':transto,
  32.          'query':content,
  33.          'transtype':'translang',
  34.          'simple_means_flag':'3',
  35.          'sign':'94582.365127',
  36.          'token':'ec980ef090b173ebdff2eea5ffd9a778'}
  37. data2 = urllib.parse.urlencode(data2).encode('utf-8')

  38. headers = {"User-Agent":"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Mobile Safari/537.36"
  39.            }

  40. youdao_response = urllib.request.urlopen(youdao_url,data1)
  41. baidu_req = urllib.request.Request(baidu_url,data2,headers)
  42. baidu_response = urllib.request.urlopen(baidu_req)
  43. target_youdao = json.loads(youdao_response.read().decode('utf-8'))
  44. target_baidu = json.loads(baidu_response.read().decode('utf-8'))

  45. print('有道翻译结果:%s' % (target_youdao['translateResult'][0][0]['tgt']))
  46. print('百度翻译结果:%s' % (target_baidu['trans'][0]['dst']))

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 21:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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