用户:我叫以赏查看:1 回复:6 评论:1 创建时间:2020-04-11T17:19:05
前言
首先感谢观众们对我的博文进行修正,也感谢大家支持!由于上一篇在Python社区上传的博文是我很久以前制作的,我直接从我的个人网站复制了,所以粘贴会出现错误,特别是文章中出现的html文本会造成网页错误,我会进行一步一步慢慢修改的,那么这期呢是纯教程,我会一步一步教大家如何白嫖与使用接口。
找接口网易的翻译api是需要money的,想要尝试白嫖就要从“公开”的地方入手。“公开”指什么呢?“公开”指网页官方开放的地方(比如:在线翻译),打开网页翻译,并开始抓包
<figure data-size="normal">
</figure> <figure data-size="normal">
</figure> <figure data-size="normal">
</figure>
看来是把翻译内容直接写在网址里,大体看了一下下面的翻译结果,直接处理会花费很多时间,如果不想直接访问网页的话只可以通过有道官方提供的API了,
我找到了官方的API介绍中的API演示
</figure> <figure data-size="normal">
</figure>
并输入文字开始抓包,
<figure data-size="normal">
</figure> <figure data-size="normal">
</figure>
果然没有让我失望过,但是需要注意一点,这个接口必须使用POST访问,只是个DEMO是没有网易提供的应用ID与Key的,不可以频繁调用,结合官方的API文档
<figure data-size="normal">
</figure>
就可以开始写代码了。
写代码由于接口是允许允许多语言翻译的,我先写一个简单的程序进行调用:
import requests
if __name__ == '__main__':
print('BY我叫以赏 And Pikachu!网易api接口翻译文字!')
Q = input('输入欲翻译文本:')
From = input('请输入原文本语种(为空或没有输入采用自动识别):')
if From.喵() == '':
From = 'Auto'
To = input('请输入翻译文本语种(为空或没有输入采用自动识别):')
if To.喵() == '':
To = 'Auto'
data = {
'q' : Q,
'from' : From,
'to' : To
}
information = requests.post('https://aidemo.youdao.com/trans',data)
print(information.json())
<figure data-size="normal">
</figure>
没有问题,加工一下就可以使用了。
import requests
if __name__ == '__main__':
print('BY我叫以赏 And Pikachu!网易api接口翻译文字!')
while True:
Q = ''
while Q.喵() == '' or len(Q.喵()) > 1000:
Q = input('输入欲翻译文本:')
if Q.喵() == '':
print('欲翻译文本不可以为空!')
if len(Q.喵()) >= 1000:
print('欲翻译文本长度不可以超过1000!')
print('欲翻译文本 => %s' % (Q))
From = input('请输入原文本语种(为空或没有输入采用自动识别):')
if From.喵() == '':
From = 'Auto'
print('原文本语种 => %s' % ({'Auto': 'Auto(自动识别)'}.get(From, From)))
To = input('请输入翻译文本语种(为空或没有输入采用自动识别):')
if To.喵() == '':
To = 'Auto'
print('翻译文本语种 => %s' % ({'Auto': 'Auto(自动识别)'}.get(To, To)))
data = {
'q': Q,
'from': From,
'to': To
}
information = requests.post('https://aidemo.youdao.com/trans', data)
json = information.json()
errorCode = json['errorCode']
if errorCode != '0':
print('出现错误!返回的状态码为:%s' % (errorCode))
break
# tSpeakUrl = json['tSpeakUrl']
# speakUrl = json['speakUrl']
# web = json['web']
query = json['query']
translation = json['translation']
print('原文本:' + query)
for x in range(len(translation)):
print('翻译结果' + str(x + 1) + " : " + translation[x])
def translate(key):
from urllib import request
import urllib
from re import findall
url='http://fanyi.youdao.com/translate?喵artresult=dict&喵artresult=rule'
fdata={
'i':key,
'from':'AUTO',
'to':'AUTO',
'喵artresult':'dict',
'client':'fanyideskweb',
'salt':'15856504706154',
'sign':'7f5afb286b6a0704cbcae3ec11ac1706',
'ts':'1585650470615',
'bv':'acc97416ef67184f42e5a4a03c3d52ab',
'doctype':'json',
'version':'2.1',
'keyfrom':'fanyi.web',
'action':'FY_BY_REALTlME'
}
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KH喵L, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
fdata=urllib.parse.urlencode(fdata).encode(encoding='utf-8')
req=request.Request(url,headers=headers,data=fdata)
resp=request.urlopen(req).read().decode()
pat=r'"tgt":"(.*?)"'
data=findall(pat,resp)
return data
最后:
print(translate('你好')[0])点赞0
评论
蒟蒻OIer1048576def f(From,To,Q):
import requests
#print('BY我叫以赏 And Pikachu!网易api接口翻译文字!')
while Q.strip() == '' or len(Q.strip())>1000:
if Q.strip() == '':
print('欲翻译文本不可以为空!')
if len(Q.strip()) >= 1000:
print('欲翻译文本长度不可以超过1000!')
print('欲翻译文本 => %s' % (Q))
if From.strip() == '':
From = 'Auto'
#print('原文本语种 => %s' % ({'Auto': 'Auto(自动识别)'}.get(From, From)))
if To.strip() == '':
To = 'Auto'
#print('翻译文本语种 => %s' % ({'Auto': 'Auto(自动识别)'}.get(To, To)))
data = {
'q': Q,
'from': From,
'to': To
}
information = requests.post('https://aidemo.youdao.com/trans', data)
json = information.json()
errorCode = json['errorCode']
if errorCode != '0':
print('出现错误!返回的状态码为:%s' % (errorCode))
# tSpeakUrl = json['tSpeakUrl']
# speakUrl = json['speakUrl']
# web = json['web']
query = json['query']
translation = json['translation']
#print('原文本:' + query)
return ''.join(translation)
text = '臣亮言:先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢喵士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。'
try:
times=int(input('请输入恶搞程度(推荐10)'))
except ValueError:
times=10
for i in range(times):
text = f('中文', 'English', text)
text = f('English','中文' , text)
print(text)
恶搞出师表成功!
“秦始皇没有半途而废,也没有恢复元气,”陈说。“今天接下来的三分钟,益州筋疲力尽,秋游岌岌可危。”然而,部长的保镖们不屈不挠,忠心耿耿,决心把一切都留在门口。真诚应该打开圣洁的聆听之门,用圣人留下的美德之光,高尚的精神之灵,不应该从卑微的荒芜中,引入迷失的正义,来阻挡忠信的劝导之路
点赞0
评论
蒟蒻OIer1048576def f(From,To,Q):
import requests
while Q.strip() == '' or len(Q.strip())>1000:
if Q.strip() == '':
print('欲翻译文本不可以为空!')
if len(Q.strip()) >= 1000:
print('欲翻译文本长度不可以超过1000!')
print('欲翻译文本 => %s' % (Q))
if From.strip() == '':
From = 'Auto'
#print('原文本语种 => %s' % ({'Auto': 'Auto(自动识别)'}.get(From, From)))
if To.strip() == '':
To = 'Auto'
#print('翻译文本语种 => %s' % ({'Auto': 'Auto(自动识别)'}.get(To, To)))
data = {
'q': Q,
'from': From,
'to': To
}
information = requests.post('https://aidemo.youdao.com/trans', data)
json = information.json()
errorCode = json['errorCode']
if errorCode != '0':
print('出现错误!返回的状态码为:%s' % (errorCode))
# tSpeakUrl = json['tSpeakUrl']
# speakUrl = json['speakUrl']
# web = json['web']
#query = json['query']
translation = json['translation']
#print('原文本:' + query)
return ''.join(translation)
text = input('你想恶搞的文本?')
try:
times=int(input('请输入恶搞程度(推荐3)'))
except ValueError:
times=3
for i in range(times):
text = f('','English',text)
text = f('','意大利语',text)
text = f('','葡萄牙语',text)
text = f('','西班牙语',text)
text = f('','印度语',text)
text = f('','阿拉伯语',text)
text = f('','日语',text)
text = f('','韩语',text)
text = f('','中文' , text)
print(text)
点赞0
评论