Python调用有道智云文本翻译API接口实现“智能”伪原创

随着人工智能的火热,互联网热门韭菜行业SEO也貌似进入了AI的快车道,尤其以智能伪原创超级热门,你会发现几乎是个seo工具网站都挂着智能伪原创的“狗头”招牌,抱着人无我有,人有我优的seo优化心态,都吹嘘自己的伪原创最最最有效。

pic_001.png

本质上智能伪原创都是翻译来翻译去而形成的内容,高级智能伪原创不妨试试各种小语种的翻译,估计会有奇效,所谓大力出奇效,当然还有这个捞偏门的奇效方法。


市面上绝大部分智能伪原创的原理:

第一,把文本翻译成英文

第二,把英文重新翻译成中文

当然初始的文本内容是如何操作,以及最终获得的文本内容再如何操作,那就看你自己的操作了,还有各种变态,衍生版本,比如前面提到的小语种翻译,不妨自行尝试效果。


优化处理本身就是一个细活,越精致是越好的!

回归正题,应用Python调用有道智云官方文本翻译API接口来实现“智能”伪原创的功能,当然本渣渣是不会写的,官方文档已经给出了Python调用例子,可以直接使用,ctrl+c,ctrl+v大法好,必须得学废使用啊!


有道智云注册

第一步:注册一个有道智云账号,需手机号验证,实名认证。

pic_002.png

新账户直接赠送50元体验金

pic_003.png

第二步:注册成功后,创建应用获取账号及秘钥。

pic_004.png

第三步:创建翻译实例,绑定应用

pic_005.png

附上后台设置一览,接入方式,选择API

pic_006.png

有道智云API文档文本翻译服务帮助文档(关键部分)

https://ai.youdao.com/DOCSIRMA/html/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E7%BF%BB%E8%AF%91/API%E6%96%87%E6%A1%A3/%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1/%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1-API%E6%96%87%E6%A1%A3.html

pic_007.png

重点提一下其签名方法

signType=v3;

sign=sha256(应用ID+input+salt+curtime+应用密钥);

其中,input的计算方式为:input=q前10个字符 + q长度 + q后10个字符(当q长度大于20)或 input=q字符串(当q长度小于等于20);

可想而知,逆向的难度!


调用api是常规操作,其官方文档,帮助中心一定要研究好,不然容易翻车!

同理,python及框架官方文档也需要把握好!


Python调用API接口实现“智能”伪原创

Python3 示例(官方文档)

# 有道智云 API文档  文本翻译服务 Python3 示例
# -*- coding: utf-8 -*-

import sys
import uuid
import requests
import hashlib
import time
#from imp import reload       imp 已经弃用,替换为 importlib

from importlib import reload
import json


reload(sys)

YOUDAO_URL = 'https://openapi.youdao.com/api'
# APP_KEY = '应用账号'
# APP_SECRET = '秘钥'


def encrypt(signStr):
    hash_algorithm = hashlib.sha256()
    hash_algorithm.update(signStr.encode('utf-8'))
    return hash_algorithm.hexdigest()


def truncate(q):
    if q is None:
        return None
    size = len(q)
    return q if size <= 20 else q[0:10] + str(size) + q[size - 10:size]


def do_request(data):
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    return requests.post(YOUDAO_URL, data=data, headers=headers)


def connect(q,APP_KEY,APP_SECRET):
    #q = "The Story of Love, part 1"
    data = {}
    data['from'] = 'en'
    data['to'] = 'zh-CHS'
    data['signType'] = 'v3'
    curtime = str(int(time.time()))
    data['curtime'] = curtime
    salt = str(uuid.uuid1())
    signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET
    sign = encrypt(signStr)
    data['appKey'] = APP_KEY
    data['q'] = q
    data['salt'] = salt
    data['sign'] = sign

    response = do_request(data)
    contentType = response.headers['Content-Type']
    if contentType == "audio/mp3":
        millis = int(round(time.time() * 1000))
        filePath = "合成的音频存储路径" + str(millis) + ".mp3"
        fo = open(filePath, 'wb')
        fo.write(response.content)
        fo.close()
    else:
        #print(response.content)
        #print(response.content.decode('utf-8'))
        print(json.loads(response.content.decode('utf-8'))['translation'][0])
        return json.loads(response.content.decode('utf-8'))['translation'][0]


if __name__ == '__main__':
    connect()

本渣渣改写的版本,中翻英有效,英翻中,就失效了,百思不得骑姐啊!!

日常翻车,无不如此!!

# 有道智云 API文档  文本翻译服务
#20200801 by 微信:huguo00289
# -*- coding: utf-8 -*-

import uuid
import requests
import hashlib
import time
import json
from setting import APP_KEY,APP_SECRET
from demo import connect

def encrypt(signStr):
    hash_algorithm = hashlib.sha256()
    hash_algorithm.update(signStr.encode('utf-8'))
    return hash_algorithm.hexdigest()


def translate(APP_KEY,APP_SECRET,text):

    url='https://openapi.youdao.com/api'


    headers={'Content-Type': 'application/x-www-form-urlencoded'}

    #文本格式转化
    size=len(text)
    if size<=20:
        q=text
    else:
        #text = urllib.parse.quote(text)
        q=f'{text[0:10]}{str(size)}{text[size-10:size]}'

    print(q)

    curtime=str(int(time.time())) #当前UTC时间戳(秒)
    salt=str(uuid.uuid1())  #UUID

    #实现签名
    signStr = f'{APP_KEY}{q}{salt}{curtime}{APP_SECRET}'
    hash_algorithm = hashlib.sha256()
    hash_algorithm.update(signStr.encode('utf-8'))
    sign=hash_algorithm.hexdigest()


    data={
        # 'from': 'en',
        # 'to':'zh-CHS',
        'signType': 'v3', #签名类型
        'curtime':curtime,
        'appKey': APP_KEY,
        'q':q,
        'salt':salt,
        'sign':sign,
    }


    response=requests.post(url,data=data,headers=headers)
    #print(response.content)
    result_text=json.loads(response.content.decode('utf-8'))['translation'][0]
    print(result_text)
    return result_text


def main(text,APP_KEY,APP_SECRET):
    print(">>> 开始伪原创中..")
    en_text = translate(APP_KEY, APP_SECRET, text)
    result_text=connect(en_text,APP_KEY, APP_SECRET)
    print(">>> 伪原创完成!")
    return result_text



if __name__=='__main__':
    text="爱的故事上集"
    main(text,APP_KEY,APP_SECRET)

希望可以来个大佬哥,指点一下下,救救渣渣!

这里采取了折中的方法,为了装逼,不要脸了!

中文翻译用自己的改写版本

翻译成英文直接用官方给出的实例版本

官方版本为deom.py文件引入

from demo import connect

使用

def main(text,APP_KEY,APP_SECRET):
    print(">>> 开始伪原创中..")
    en_text = translate(APP_KEY, APP_SECRET, text)
    result_text=connect(en_text,APP_KEY, APP_SECRET)
    print(">>> 伪原创完成!")
    return result_text

考虑到账号信息是敏感信息,做了一下脱敏处理,从另一个文档调用账号信息!


从setting.py调用账号信息

from setting import APP_KEY,APP_SECRET

setting.py文档内容

# 有道智云 API  账号信息
# -*- coding: utf-8 -*-
APP_KEY = '账号信息'
APP_SECRET = '秘钥'

运行效果:

pic_008.gif

怎么样?你学废了么?