鱼C论坛

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

[已解决]有道翻译用requests模块

[复制链接]
发表于 2018-2-22 21:38:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 snail:) 于 2018-2-22 21:40 编辑

import requests

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

url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
data = {}
data['type'] = 'AUTO'
data['i'] = content
data['doctype'] = 'json'
data['xmlVersion'] = '1.6'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['typoResult'] = 'true'
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'}
html = requests.post(url,data=data,headers=headers)
html.encoding = 'uft-8'
target = html.json()#用requests自带的json解码
print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))


为什么用requests模块访问有道被屏蔽了,用urllib模块去做却可以,下面是urllib的代码


import urllib.request
import urllib.parse
import json

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

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

data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1519180629227'
data['sign'] = 'e2261e9c5853cb410635984e41a144a0'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_REALTIME'
data['typoResult'] = 'false'
data = urllib.parse.urlencode(data).encode('utf-8')

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

target = json.loads(html)

print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))
最佳答案
2018-2-22 21:46:13
  1. response = requests.get(url, params=headers)

  2.   html = response.text
复制代码

如果有兴趣,可以参考 http://bbs.fishc.com/thread-102325-1-1.html
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-22 21:46:13 | 显示全部楼层    本楼为最佳答案   
  1. response = requests.get(url, params=headers)

  2.   html = response.text
复制代码

如果有兴趣,可以参考 http://bbs.fishc.com/thread-102325-1-1.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-22 22:34:34 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-22 21:46
如果有兴趣,可以参考 http://bbs.fishc.com/thread-102325-1-1.html

不是post形式访问的么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-22 22:35:26 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-22 21:46
如果有兴趣,可以参考 http://bbs.fishc.com/thread-102325-1-1.html

可以可以,一起学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-22 22:50:13 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-22 21:46
如果有兴趣,可以参考 http://bbs.fishc.com/thread-102325-1-1.html

import requests
import json

while True:
  content = input("请输入:")
  if content == "":
    print("欢迎下次使用")
    break
  headers =  {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
              
  ,'i':content
  ,'from':'AUTO'
  ,'to':'AUTO'
  ,'smartresult':'dict'
  ,'client':'fanyideskweb'
  ,'salt':'1514345577426'
  ,'sign':'8a12c3bae1619e0d60247aa90a4d945e'
  ,'doctype':'json'
  ,'version':'2.1'
  ,'keyfrom':'fanyi.web'
  ,'action':'FY_BY_REALTIME'
  ,'typoResult':'false'
              }

  url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=null'
  response = requests.get(url, params=headers)

  html = response.text
  target = json.loads(html)
  #print(html)
  print("翻译结果:")
  print(target['translateResult'][0][0]['tgt'])
  print()


可以不用json模块,requests自带json解码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-22 23:03:31 | 显示全部楼层
snail:) 发表于 2018-2-22 22:50
import requests
import json

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

使用道具 举报

 楼主| 发表于 2018-2-23 18:42:21 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-22 21:46
如果有兴趣,可以参考 http://bbs.fishc.com/thread-102325-1-1.html

问你个,问题,如何将代码代码,按你这种形式编辑在论坛
QQ截图20180223184119.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-23 18:50:22 | 显示全部楼层
snail:) 发表于 2018-2-23 18:42
问你个,问题,如何将代码代码,按你这种形式编辑在论坛

将代码复制粘贴进去就可以了。
10.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-23 22:24:38 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-2-23 18:50
将代码复制粘贴进去就可以了。

看到了,谢谢哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 21:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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