鱼C论坛

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

[学习笔记] 用requests访问有道翻译(方便日后回来查阅)

[复制链接]
发表于 2018-2-23 23:45:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 snail:) 于 2018-2-23 23:48 编辑
  1. import requests

  2. while 1:
  3.    
  4.     content = input("请输入需要翻译的内容[按‘q’结束]:")
  5.     if content == 'q':
  6.         print('欢迎下次使用!')
  7.         break
  8.     else:

  9.         url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

  10.         data = {}
  11.         data['i'] = content
  12.         data['from'] = 'AUTO'
  13.         data['to'] = 'AUTO'
  14.         data['smartresult'] = 'dict'
  15.         data['client'] = 'fanyideskweb'
  16.         data['salt'] = '1519180629227'
  17.         data['sign'] = 'e2261e9c5853cb410635984e41a144a0'
  18.         data['doctype'] = 'json'
  19.         data['version'] = '2.1'
  20.         data['keyfrom'] = 'fanyi.web'
  21.         data['action'] = 'FY_BY_REALTIME'
  22.         data['typoResult'] = 'false'

  23.         headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
  24.         html = requests.get(url,params=data,headers=headers)
  25.         target = html.json()
  26.         print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))
复制代码



老版用urllib.request的代码如下做个比较
  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. while 1:
  5.    
  6.     content = input("请输入需要翻译的内容[按‘q’结束]:")
  7.     if content == 'q':
  8.         print('欢迎下次使用!')
  9.         break
  10.     else:

  11.         url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

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

  26.         response = urllib.request.urlopen(url, data)
  27.         html = response.read().decode('utf-8')

  28.         target = json.loads(html)

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

复制代码





最后有个问题,有道翻译是POST的形式传递的,虽然requests.get()也可以传参,还是想问下有没有大佬能帮我修改下用requests.post()获取网页信息,我试了好多次都不行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 12:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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