google翻译破解大综合
近期需要大量调用谷歌翻译,网上搜集了各种办法,最后还是经常被限制,朋友帮忙申请的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翻译破解大综合相关推荐
- Translatium for Mac 8.2.1 Google翻译 实时翻译 破解版下载
像 Translatium 一样进行翻译 – 为 MacOS 提供功能最强大的 Google Translate 客户端. Translatium for Mac 8.2.1 Google翻译 实时翻 ...
- 字节跳动宣布员工福利升级:新增10天“家庭关爱假”;Google翻译中国站点疑似关闭;Qt 6.4 正式发布|极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- Python一键转Java?“Google翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...
- 输出不详宗教预言,Google翻译为何“水逆”了?
最近,一些网友使用的 Google 翻译"水逆"了. 在 Reddit 上,有网友截图显示,在 Google 翻译中当某些语种的词汇翻译成英语时,输出的却是毫无由头的宗教语言.比如 ...
- Python 大规模异步新闻爬虫、google翻译、百度翻译、有道翻译、百度指数
参考:https://www.yuanrenxue.com/crawler/news-crawler-urlpool.html url_pool.py # -*- coding: utf-8 -*- ...
- java html转图片_Python一键转Java?“Google翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...
- 英文材质翻译表_英语翻译5大技巧,用了才知道是真好
一.略读全文 在翻译过程中,理解是表达的前提,不能正确理解就谈不上正确表达.因此,首先要略读全文,从整体上把握整篇文章的内容,并理解划线部分与文章其他部分之间的语法与逻辑关系. 二.分析划线部分 在整 ...
- Python 一键转 Java?“Google 翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID: rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖 ...
- psa加密_PSA:请注意这种新的Google翻译网络钓鱼攻击
psa加密 Akamai赤舞 You know, the thing with scammers is that they're always going to find new ways to sc ...
最新文章
- Gartner发布2020年数据与分析领域的十大技术趋势
- bzoj 2756 [SCOI2012]奇怪的游戏 二分+网络流
- [北航软工]第一次团队作业
- 玩转Javascript 给JS写测试
- linux查端口被占用情况,Linux系统中如何查询端口被占用情况
- 【笔记】通过 js——实现 各种跨域
- sublime-编辑器的使用-基本
- WCF生成的json与Extjs交互的日期型问题
- 百度统计挂了,分布式数据库异常引起,数据显示为空!
- 热点:安全问题是否能将DNS推入云服务
- 排序公式 与 组合公式
- E - Antinomy与红玉海
- Job for network.service failed because the control process exited with error code. See “systemctl st
- 2018数学建模论文写作方法
- python陆股通_要闻:11月“陆股通”渠道外资净买入A股579亿元
- spacy依存分析模型
- 为什么有时优盘是只读模式_u盘只读设置怎么弄? u盘只读设置使用方法
- 计算机科学与技术8G够,高手们.请问8G物理内存设置多少虚拟内存适合
- 【周志华机器学习】绪论
- 10%干股、65K高薪!本周新增多项高福利急聘职位