有道翻译改造的小工具,仅作学习、研究技术

一级目录

二级目录

三级目录

一、什么是有道翻译

有道智云平台是网易有道旗下一个为开发者、企业和政府机构等提供自然语言翻译、文字识别OCR等服务以及行业解决方案的云服务平台。致力于提供安全,可靠和高效的云服务,其中包含文本翻译服务,基于有道神经网络翻译引擎的文本翻译服务,支持上百种语言的自动识别与互译,服务8亿用户,翻译质量业界领先。

该工具利用体验中心展示效果进行,仅作为技术学习使用,切勿非法、过度使用。如商用请购买该服务,使用开放API方式进行翻译服务。

体验中心仅作为部分效果体验,若您想获取更好体验,请通过API/SDK方式接入该服务。

https://ai.youdao.com/product-fanyi-text.s

请添加图片描述

二、获取请求参数

F12或点击右键打开浏览器调试模式,选择“Network”,在待翻译输入框里写入字段,点击【翻译】控制台会输出请求和对应的相应信息。

如图所示:
请添加图片描述

Request URL: https://aidemo.youdao.com/trans
Request Method: POST
Status Code: 200 
Remote Address: 103.74.50.118:443
Referrer Policy: strict-origin-when-cross-origin

Header请求头

:authority: aidemo.youdao.com
:method: POST
:path: /trans
:scheme: https
accept: application/json, text/javascript, */*; q=0.01
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
content-length: 31
content-type: application/x-www-form-urlencoded; charset=UTF-8
origin: https://ai.youdao.com
referer: https://ai.youdao.com/
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Linux"
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-site
user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

Payload负载

q: hello world
from: Auto
to: Auto

构造这些参数的请求方法

请添加图片描述

三、代码实现

package main

import (
        "errors"
        "fmt"
        "strings"

        "github.com/asmcos/requests"
)

type YouDao struct {
        Query       string
        Translation []string
}

func Youdao(url,s string) (string, error) {
        data := requests.Datas{
                "q":    s,
                "from": "auto",
                "to":   "auto",
        }

        resp, err := requests.Post(url, data)
        if err != nil {
                return "", err
        }
    
        var res YouDao
    
        if err := resp.Json(&res); err != nil {
                return "", err
        }
    
        if len(res.Translation) > 0 {
                return res.Translation[0], nil
        }
    
        return resp.Text(), nil

}

func main() {
        url := "https://aidemo.youdao.com/trans"
        s := "(MS11-051)微软活动目录证书服务Web登记跨站脚本漏洞(CVE-2011-1264)"

        res, err := Youdao(url,s)
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println(res)

}

输出:

(MS11-051) Microsoft Active Directory Certificate Service Web Registry Cross-site Scripting Vulnerability (CVE-2011-1264)

package main

import (
        "errors"
        "fmt"
        "strings"

        "github.com/asmcos/requests"

)

//翻译
type FanYiResult struct {
        Data FanYiData
        Msg  string
}

type FanYiData struct {
        //Explain interface{}
        Fanyi string
}

func En2zh(s string) (string, error) {
        //空格输入 %20
        //curl -v "http://dict.youdao.com/fsearch?client=deskdict&keyfrom=chrome.extension&pos=-1&doctype=xml&xmlVersion=3.2&dogVersion=1.0&vendor=unknown&appVer=3.1.17.4208&le=eng&q='hello'"
        //curl -v "http://dict.youdao.com/fsearch?client=deskdict&keyfrom=chrome.extension&q=hello&pos=-1&doctype=xml&xmlVersion=3.2&dogVersion=1.0&vendor=unknown&appVer=3.1.17.4208&le=eng"
        url := "https://fanyi.so.com/index/search"

        head := requests.Header{
                "pro":             "fanyi",
                "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
        }
    
        data := requests.Datas{
                "eng":   "1",
                "query": s,
        }
    
        resp, err := requests.Post(url, head, data)
        if err != nil {
                return "", err
        }
        var res FanYiResult
    
        if strings.Contains(resp.Text(), "error") {
                if strings.Contains(resp.Text(), "请输入验证码以便正常访问") {
                        return s, errors.New("访问api频繁异常")
                }
                if strings.Contains(resp.Text(), "query restricted") {
                        return s, errors.New("查询限制")
                }
        } else {
                if err := resp.Json(&res); err != nil {
                        return "", err
                }
    
                if res.Msg == "succ" {
                        return res.Data.Fanyi, err
                }
        }
    
        return s, nil

}

func main() {
        s := "hello"
        re, err := En2zh(s)
        if err != nil {
             fmt.Println(err)
        }
        fmt.Println(re)
}

四、附录

参考链接:
https://ai.youdao.com/product-fanyi-text.s

https://fanyi.so.com/index/search

https://github.com/asmcos/requests

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

byzf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值