热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3调用谷歌翻译

googletranslate.js:TKKeval(((function(){vara\x3d2065549123;varb\x3d-1264353036;return42228

googletranslate.js:

TKK=eval('((function(){var a\x3d2065549123;var b\x3d-1264353036;return 422288+\x27.\x27+(a+b)})())'); return TKK;

googletranslate_1.js:

function b(a, b) { for (var d = 0; d ) { var c = b.charAt(d + 2), c = "a" <= c ? c.charCodeAt(0) - 87 : Number(c), c = "+" == b.charAt(d + 1) ? a >>> c : a << c; a = "+" == b.charAt(d) ? a + c & 4294967295 : a ^ c } return a } function tk(a,TKK) { for (var e = TKK.split("."), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f ) { var c = a.charCodeAt(f); 128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 > 18 | 240, g[d++] = c >> 12 & 63 | 128) : g[d++] = c >> 12 | 224, g[d++] = c >> 6 & 63 | 128), g[d++] = c & 63 | 128) } a = h; for (d = 0; d ); a = b(a, "+-3^+b+-f"); a ^= Number(e[1]) || 0; 0 > a && (a = (a & 2147483647) + 2147483648); a %= 1E6; return a.toString() + "." + (a ^ h) }  

main.py:

import requests  
import json  
import sys  
import urllib  
from bs4 import  BeautifulSoup  
import re  
import execjs  
import os  
import numpy as np
  
  
      
class  Translate:  
    def __init__(self,query_string):  
        self.api_url="https://translate.google.cn"  
        self.query_string=query_string  
        self.headers={  
            "User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:53.0) Gecko/20100101 Firefox/53.0"  
                      }  
          
    def get_url_param_data(self):  
        url_param_part=self.api_url+"/translate_a/single?"  
        url_param=url_param_part+"client=t&sl=es&tl=fr&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&source=btn&ssel=3&tsel=3&kc=0&"  
        #sl为源语言,tl为目标语言
        url_get=url_param+"tk="+str(self.get_tk())+"&q="+str(self.get_query_string())  
        #print(url_get)  
        return  url_get  
      
    def get_query_string(self):  
        query_url_trans=urllib.parse.quote(self.query_string)#汉字url编码  
        return  query_url_trans  
       
    def get_tkk(self):  
        part_jscode_2="\n"+"return TKK;"  
        tkk_page=requests.get(self.api_url,headers=self.headers)  
        tkk_code=BeautifulSoup(tkk_page.content,'lxml')  
        patter= re.compile(r'(TKK.*?\);)', re.I | re.M)  
        part_jscode=re.findall(patter,str(tkk_code))  
        #print(part_jscode[0])  
        js_code=part_jscode[0]+part_jscode_2  
        with open ("googletranslate.js","w")  as  f:  
            f.write(js_code)  
            f.close  
        tkk_value=execjs.compile(open(r"googletranslate.js").read()).call('eval')  
        #print(tkk_value)  
        return tkk_value  
      
    def get_tk(self):  
        tk_value=execjs.compile(open(r"googletranslate_1.js").read()).call('tk',self.query_string,self.get_tkk())  
        #print(tk_value)  
        return tk_value  
            
      
    def parse_url(self):  
        response=requests.get(self.get_url_param_data(),headers=self.headers)  
        return response.content.decode()  
      
      
    def  get_trans_ret(self,json_response):  
        dict_response=json.loads(json_response)  
        ret=dict_response[0][0][0]  
        #print(ret) 
        return ret 
          
          
    def  run(self):  
        json_response=self.parse_url()  
        n=self.get_trans_ret(json_response)
        return n  
         
         
if  __name__=="__main__":
    vocab = np.load('vocabEN-ES.npy')
    vocab_array=np.array(['',''])
    for i in range(1855):
        google=Translate(vocab[i][1].lower())
        row=np.array([vocab[i][1],google.run().lower()])
        vocab_array=np.row_stack((vocab_array,row))
        print('谷歌翻译第%d'%(i+1) + '个单词完成!')
    vocab_array=np.delete(vocab_array,0,0)
    np.save("vocabES-FR.npy", vocab_array)
    a=np.load("vocabES-FR.npy")
    print(a)
    print(a.shape)
    '''f_en = open('test_removed.txt', 'r')
    mystr = f_en.read()
    en_list = mystr.split()
    vocab_array=np.array(['',''])
    for i in range(1280):
        google=Translate(en_list[i])
        row=np.array([en_list[i],google.run().lower()])
        vocab_array=np.row_stack((vocab_array,row))
        print('谷歌翻译第%d'%(i+1)+'个单词完成!')

    vocab_array = np.delete(vocab_array,0,0)
    print(vocab_array)
    np.save("test1000EN-FR.npy", vocab_array)
    f_en.close()'''

三个代码放在同一文件夹,执行python3 main.py即可

 


推荐阅读
  • 大数据分析Python有哪些爬虫框架
    一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。。用 ... [详细]
  • 最近用python写了一个小程序,想发布出去让人试用又不想暴露源码,搜索了一下发现将py文件编译成pyd文件就能达到目的。转换过程很简单,但是在调用pyd文件并且打包为单个exe文 ... [详细]
  • 记录工作和学习中遇到和使用过的Python库。Target四个Level整理Collect学习Learn练习Practice掌握Master1.Python原生和功能增强1.1py ... [详细]
  • PHPcURL获取微信公众号access_token的实例php实例:这篇文章主要介绍了PHPcURL获取微信公众号access_token的实例,需要的朋友可以参考下1.开发微信 ... [详细]
  • 变相的实现connect的超时,我要讲的就是这个方法,原理上是这样的:1.建立socket2.将该socket ... [详细]
  • 下面是一个用openssl实现获取https网页内容的demo,整个流程比较简单,主要封装的API如下staticinthttps_init(http ... [详细]
  • mysql oneproxy稳定吗_Mysql 中间件 oneProxy总结
    建议使用之前把官方的文档全部通读一遍这里提供一个我的网盘地址oneproxy百度网盘0.先对oneproxy有个大概的了解,知道他所处的位置1.MySQL服务器创建t ... [详细]
  • 十一、构建我们自己的包在本章中,我们将学习如何构建自己的包。编写包可以让我们创建可以在许多应用 ... [详细]
  • 下载器,就是一种网络工具,从网络中接收自己想要的数据。下载器是一个网络客户端。它的下载流程无非就是客户端连接服务器端,然后发送资源下载请求 ... [详细]
  • 本文整理了Java中org.assertj.core.api.AbstractCharSequenceAssert.hasSize()方法的一些代码示例,展示了 ... [详细]
  • PyTorch 2.0来了!100%向后兼容,一行代码将训练提速76%!
    点击下方卡片,关注“CVer”公众号AICV重磅干货,第一时间送达点击进入—CV微信技术交流群转载自:机器之心PyTorch官方 ... [详细]
  • 2019独角兽企业重金招聘Python工程师标准
    本文介绍了2019独角兽企业重金招聘Python工程师的标准。同时解释了Alpha、Beta、RC、GA、RTM、OEM、RVL、EVAL、RTL、α、β、λ等相关术语的含义和区别。 ... [详细]
  • 判断编码是否可立即解码的程序及电话号码一致性判断程序
    本文介绍了两个编程题目,一个是判断编码是否可立即解码的程序,另一个是判断电话号码一致性的程序。对于第一个题目,给出一组二进制编码,判断是否存在一个编码是另一个编码的前缀,如果不存在则称为可立即解码的编码。对于第二个题目,给出一些电话号码,判断是否存在一个号码是另一个号码的前缀,如果不存在则说明这些号码是一致的。两个题目的解法类似,都使用了树的数据结构来实现。 ... [详细]
  • 写在前面最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试。没想到啊,这坑太深了。。。看了看相关介绍后选择了Scrapy框架,然后兴高采烈的 ... [详细]
  • 准备gitanaconda3Step1:下载安装git这里是windows下git安装:需要注意的是在这里不选择第一个,要选择第二个,在windows下也可以。然后跟着默认选择就可 ... [详细]
author-avatar
修魔海的传说
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有