Python 调用腾讯翻译君 (2021/1/13 ) 亲测可用

import requests
import time

class Tencent():
    def __init__(self):
        self.api_url = 'https://fanyi.qq.com/api/translate'
        self.headers = {
            'Cookie': 'fy_guid=605ead81-f210-47eb-bd80-ac6ae5e7a2d8; '
                      'qtv=ed286a053ae88763; '
                      'qtk=wfMmjh3k/7Sr2xVNg/LtITgPRlnvGWBzP9a4FN0dn9PE7L5jDYiYJnW03MJLRUGHEFNCRhTfrp/V+wUj0dun1KkKNUUmS86A/wGVf6ydzhwboelTOs0hfHuF0ndtSoX+N3486tUMlm62VU4i856mqw==; ',
            'Host': 'fanyi.qq.com',
            'Origin': 'https://fanyi.qq.com',
            'Referer': 'https://fanyi.qq.com/',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, '
                          'like Gecko) Chrome/73.0.3683.86 Safari/537.36', }
        self.fromlang = 'auto'
        self.text = ''
        self.tolang = 'en'  # 设置默认为英语
        self.sessionUuid = str(int(time.time() * 1000))
        self.fy_guid, self.qtv, self.qtk = self.get_qtv_qtk()
        self.headers['Cookie'] = self.headers['Cookie'].replace(
            '605ead81-f210-47eb-bd80-ac6ae5e7a2d8', self.fy_guid)
        self.headers['Cookie'] = self.headers['Cookie'].replace(
            'ed286a053ae88763', self.qtv)
        self.headers['Cookie'] = self.headers['Cookie'].replace(
            'wfMmjh3k/7Sr2xVNg/LtITgPRlnvGWBzP9a4FN0dn9PE7L5jDYiYJnW03MJLRUGHEFNCRhTfrp/V+wUj0dun1KkKNUUmS86A/wGVf6ydzhwboelTOs0hfHuF0ndtSoX+N3486tUMlm62VU4i856mqw==',
            self.qtk)

    def get_filter(self, text):
        if isinstance(text, list):
            text = ''.join(text)
        text = str(text)
        text = text.strip()
        filter_list = [
            '\r', '\n', '\t', '\u3000', '\xa0', '\u2002',
            '<br>', '<br/>', '    ', '    ', '&nbsp;', '>>', '&quot;',
            '展开全部', ' '
        ]
        for fl in filter_list:
            text = text.replace(fl, '')
        return text

    def get_qtv_qtk(self):
        api_url = 'https://fanyi.qq.com/api/aaa123'
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, '
                          'like Gecko) Chrome/73.0.3683.86 Safari/537.36', }
        res = requests.post(api_url, headers=headers)
        data = res.json()
        fy_guid = res.cookies.get('fy_guid')
        # reg = re.compile(r'var qtv = "(.*?)"')
        qtv = data['qtv']
        # reg = re.compile(r'var qtk = "(.*?)"')
        qtk = data['qtk']
        return fy_guid, qtv, qtk

    def getHtml(self, url, headers, data):
        try:
            html = requests.post(url=url, data=data, headers=headers)
            # print(html.text)
            datas = html.json()['translate']['records']
            if html != None and datas != None:
                # 以文本的形式打印结果
                trans_result = ''.join([data['targetText'] for data in datas])
            return trans_result
        except Exception:
            return None

    def translate(self, text):
        data = {
            'source': self.fromlang,
            'target': self.tolang,
            'sourceText': text,
            'qtv': self.qtv,
            'qtk': self.qtk,
            'sessionUuid': self.sessionUuid, }
        try:
            result = self.getHtml(self.api_url, self.headers, data)
            # print('腾讯翻译结果为:',result)
            return result
        except:
            return '程序出现了一点小问题,无法翻译'

t= Tencent().translate('yes')
print(t)
# Tencent().get_qtv_qtk()

 

posted @ 2021-01-13 20:37  凹凸曼大人  阅读(1398)  评论(0编辑  收藏  举报