近期需要大量调用谷歌翻译,网上搜集了各种办法,最后还是经常被限制,朋友帮忙申请的300美金的免费额度也用完了,通过本地代理(没钱开那么多真的代理,网上找来的免费资源也不靠谱)绕一下也稍微起点作用,有点江郎才尽,最后发现网上的buildUrl代码有问题, s1, t1, h1换成sl, tl, hl总算可以一直调用了(天下文章一大抄,嘿嘿)。所有资源来自网上,懒得一一回溯了,总归都是感谢。当然,翻译调用几百次之后,最好还是随机delay几分钟,以免被封(不知道会不会,不测试了)。

#!/usr/bin/python
#!--*-- coding:utf-8 --*--import os
import sys
import time
import random
import requests
import json
#from googletrans import Translator
import googletrans
from translate import Translator
from bs4 import BeautifulSoup
import execjs #必须,需要先用pip 安装,用来执行js脚本
import pickle
from utils import safe_pickle_dump, strip_version, isvalidid, Config
from nltk import data
from nltk.tokenize import sent_tokenize
from google.cloud import translate
from googletrans.gtoken import TokenAcquirerdata.path.append(r"/root/nltk_data")import urllib.request
from urllib.parse import quote
import http.cookiejar# crackedjs, crackedpython, google
#translate_method = "google"
#translate_method = "crackedpython"
translate_method = "crackedjs"
#translate_method = "translate-shell"
#translate_method = "mmtranslator"proxy_en = True
#proxy_en = False# cracked google translate api
translator = googletrans.Translator()
mmtranslator= Translator(to_lang="zh")
# google translate api
translate_client = Nonedef get_google_cookie():headers={'authority':'translate.google.cn','method':'GET','path':'/','scheme':'https','accept':'*/*','accept-encoding':'gzip, deflate, br','accept-language':'zh-CN,zh;q=0.9','cache-control': 'no-cache','pragma': 'no-cache','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36','x-client-data': '替换成自己chrome浏览器里的捕捉的内容,可能并不重要'}cookie_file = './logs/cookie.txt'cookie_set = ''try:cookie = http.cookiejar.MozillaCookieJar(cookie_file)handler = urllib.request.HTTPCookieProcessor(cookie)opener = urllib.request.build_opener(handler)request = urllib.request.Request('https://translate.google.cn', headers=headers)response = opener.open(request)cookie_set = response.info()['Set-Cookie']cookie.save(ignore_discard=True, ignore_expires=True)except Exception as e:cookie_set=''print("错误信息:")print(e)finally:return cookie_setclass Py4Js():def __init__(self):self.ctx = execjs.compile("""function TL(a) {var k = "";var b = 406644;var b1 = 3293161072;var jd = ".";var $b = "+-a^+6";var Zb = "+-3^+b+-f";for (var e = [], f = 0, g = 0; g < a.length; g++) {var m = a.charCodeAt(g);128 > m ? e[f++] = m : (2048 > m ? e[f++] = m >> 6 | 192 : (55296 == (m & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (m = 65536 + ((m & 1023) << 10) + (a.charCodeAt(++g) & 1023),e[f++] = m >> 18 | 240,e[f++] = m >> 12 & 63 | 128) : e[f++] = m >> 12 | 224,e[f++] = m >> 6 & 63 | 128),e[f++] = m & 63 | 128)}a = b;for (f = 0; f < e.length; f++) a += e[f],a = RL(a, $b);a = RL(a, Zb);a ^= b1 || 0;0 > a && (a = (a & 2147483647) + 2147483648);a %= 1E6;return a.toString() + jd + (a ^ b)};function RL(a, b) {var t = "a";var Yb = "+";for (var c = 0; c < b.length - 2; c += 3) {var d = b.charAt(c + 2),d = d >= t ? d.charCodeAt(0) - 87 : Number(d),d = b.charAt(c + 1) == Yb ? a >>> d: a << d;a = b.charAt(c) == Yb ? a + d & 4294967295 : a ^ d}return a}""")def getTk(self, text):return self.ctx.call("TL",text)def buildUrl(text,tk):baseUrl='https://translate.google.cn/translate_a/single'baseUrl+='?client=webapp&'baseUrl+='sl=auto&'baseUrl+='tl=zh-CN&'baseUrl+='hl=zh-CN&'baseUrl+='dt=at&'baseUrl+='dt=bd&'baseUrl+='dt=ex&'baseUrl+='dt=ld&'baseUrl+='dt=md&'baseUrl+='dt=qca&'baseUrl+='dt=rw&'baseUrl+='dt=rm&'baseUrl+='dt=ss&'baseUrl+='dt=t&'baseUrl+='ie=UTF-8&'baseUrl+='oe=UTF-8&'baseUrl+='otf=1&'baseUrl+='pc=1&'baseUrl+='ssel=0&'baseUrl+='tsel=0&'baseUrl+='kc=2&'baseUrl+='tk='+str(tk)+'&'baseUrl+='q='+textreturn baseUrldef translate_text(method, text, cookie_set):global translate_clientif method == "translate-shell":with open('./logs/text.txt', "w") as f:f.write(text)f.close()cmd = 'trans -e google -brief :zh-CN file://./logs/text.txt'cmdobj = os.popen(cmd, 'r', 1)text_lines = cmdobj.readlines()cmdobj.close()text_cn = ''.join(text_lines)return text_cnelif method == "crackedpython":return translator.translate(line, dest='zh-CN').textelif method == "mmtranslator":text_cn = mmtranslator.translate(line)return '' if text_cn[0:16] == "MYMEMORY WARNING" else text_cnelif method == "google":if translate_client is None:translate_client = translate.Client()# Translates some text into Chinesetranslation = translate_client.translate(text,target_language='zh-CN')return translation['translatedText']headers={'authority': 'translate.google.cn','method': 'GET','path': '','scheme': 'https','accept': '*/*','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','cache-control': 'no-cache','cookie': cookie_set,'pragma': 'no-cache','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36','x-client-data': '替换成自己chrome浏览器里的捕捉的内容,可能并不重要'}proxy_dict = {"http": "http://127.0.0.1:8080","https": "http://127.0.0.1:8080"}url = buildUrl(quote(text), acquirer.do(text))#url = buildUrl(quote(text), js.getTk(text))headers['path'] = url[27:]res = ''try:r = requests.get(url, headers=headers, proxies=(proxy_dict if proxy_en else None))result=json.loads(r.text)if result[7]!=None:# 如果我们文本输错,提示你是不是要找xxx的话,那么重新把xxx正确的翻译之后返回try:correctText=result[7][0].replace('<b><i>',' ').replace('</i></b>','')print(correctText)correctUrl=buildUrl(correctText,js.getTk(correctText))headers['path'] = correctUrl[27:]correctR = requests.get(correctUrl, headers=headers, proxies=(proxy_dict if proxy_en else None))newResult=json.loads(correctR.text)res=newResult[0][0][0]except Exception as e:print(e)res=result[0][0][0]else:res=result[0][0][0]except Exception as e:res=''print(url)print("翻译"+text+"失败")print("错误信息:")print(e)finally:return resif __name__ == '__main__':total = 0if len(sys.argv) > 1:total = int(sys.argv[1])if len(sys.argv) > 2:translate_method = sys.argv[2]cookie_set = get_google_cookie()if cookie_set == '':if os.path.exists('./logs/cookie_set.txt'):with open('./logs/cookie_set.txt', 'r') as f:cookie_set = f.read()else:print("Get google cookie failed!")if translate_method == "crackedjs":print("exit, no cookie for cracked js")sys.exit(0)else:with open('./logs/cookie_set.txt', 'w') as f:f.write(cookie_set)js=Py4Js()acquirer = TokenAcquirer()print('loading the paper database', Config.db_path)db = pickle.load(open(Config.db_path, 'rb'))translate_text(translate_method, 'The quick brown fox jumps over the lazy dog.', cookie_set)

google翻译破解大综合相关推荐

  1. Translatium for Mac 8.2.1 Google翻译 实时翻译 破解版下载

    像 Translatium 一样进行翻译 – 为 MacOS 提供功能最强大的 Google Translate 客户端. Translatium for Mac 8.2.1 Google翻译 实时翻 ...

  2. 字节跳动宣布员工福利升级:新增10天“家庭关爱假”;Google翻译中国站点疑似关闭;Qt 6.4 正式发布|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  3. Python一键转Java?“Google翻译”你别闹

    作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...

  4. 输出不详宗教预言,Google翻译为何“水逆”了?

    最近,一些网友使用的 Google 翻译"水逆"了. 在 Reddit 上,有网友截图显示,在 Google 翻译中当某些语种的词汇翻译成英语时,输出的却是毫无由头的宗教语言.比如 ...

  5. Python 大规模异步新闻爬虫、google翻译、百度翻译、有道翻译、百度指数

    参考:https://www.yuanrenxue.com/crawler/news-crawler-urlpool.html url_pool.py # -*- coding: utf-8 -*- ...

  6. java html转图片_Python一键转Java?“Google翻译”你别闹

    作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...

  7. 英文材质翻译表_英语翻译5大技巧,用了才知道是真好

    一.略读全文 在翻译过程中,理解是表达的前提,不能正确理解就谈不上正确表达.因此,首先要略读全文,从整体上把握整篇文章的内容,并理解划线部分与文章其他部分之间的语法与逻辑关系. 二.分析划线部分 在整 ...

  8. Python 一键转 Java?“Google 翻译”你别闹

    作者 | 若名 出品 | AI科技大本营(ID: rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖 ...

  9. psa加密_PSA:请注意这种新的Google翻译网络钓鱼攻击

    psa加密 Akamai赤舞 You know, the thing with scammers is that they're always going to find new ways to sc ...

最新文章

  1. Gartner发布2020年数据与分析领域的十大技术趋势
  2. bzoj 2756 [SCOI2012]奇怪的游戏 二分+网络流
  3. [北航软工]第一次团队作业
  4. 玩转Javascript 给JS写测试
  5. linux查端口被占用情况,Linux系统中如何查询端口被占用情况
  6. 【笔记】通过 js——实现 各种跨域
  7. sublime-编辑器的使用-基本
  8. WCF生成的json与Extjs交互的日期型问题
  9. 百度统计挂了,分布式数据库异常引起,数据显示为空!
  10. 热点:安全问题是否能将DNS推入云服务
  11. 排序公式 与 组合公式
  12. E - Antinomy与红玉海
  13. Job for network.service failed because the control process exited with error code. See “systemctl st
  14. 2018数学建模论文写作方法
  15. python陆股通_要闻:11月“陆股通”渠道外资净买入A股579亿元
  16. spacy依存分析模型
  17. 为什么有时优盘是只读模式_u盘只读设置怎么弄? u盘只读设置使用方法
  18. 计算机科学与技术8G够,高手们.请问8G物理内存设置多少虚拟内存适合
  19. 【周志华机器学习】绪论
  20. 10%干股、65K高薪!本周新增多项高福利急聘职位

热门文章

  1. 计算机教育杂志有核心期刊吗,计算机教学论文参考文献集 计算机教学核心期刊参考文献哪里找...
  2. 各国语言代码,对于多语言软件非常有用!
  3. 斯凯奇熊猫鞋怎样清洗
  4. 2kB也能做出好玩的游戏?别惊讶,你一定玩过
  5. 深入Java虚拟机学习笔记
  6. java怎么获取索引值,Java 实例 - 获取向量元素的索引值
  7. canvas制作旋转的太极图
  8. vim中Ctrl+t和Ctrl+o快捷键的区别
  9. 浅谈企业信息化建设的整体规划
  10. 工程导论4444444