看了胖喵http://www.cnblogs.com/by-dream/p/6554340.html 的博文后,想参考着自己写一个,由于对js不是很熟悉,就直接在Python里利用pyexecjs库调用js来获取tk值,tkk的js获取代码自动网页爬取写入googletranslate.js,再调用大神写的googletranslate_1.js运算获取tk值
代码如下,打印结果来看运行的不错:

import requests
import json
import sys
import urllib
from bs4 import  BeautifulSoup
import re
import execjs
import osclass  Translate:def __init__(self,query_string):self.api_url="https://translate.google.cn"self.query_string=query_stringself.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=zh-CN&tl=en&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&"url_get=url_param+"tk="+str(self.get_tk())+"&q="+str(self.get_query_string())print(url_get)return  url_getdef get_query_string(self):query_url_trans=urllib.parse.quote(self.query_string)#汉字url编码return  query_url_transdef 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_2with open ("D:/googletranslate.js","w")  as  f:f.write(js_code)f.closetkk_value=execjs.compile(open(r"D:/googletranslate.js").read()).call('eval')print(tkk_value)return tkk_valuedef get_tk(self):tk_value=execjs.compile(open(r"D:/googletranslate_1.js").read()).call('tk',self.query_string,self.get_tkk())print(tk_value)return tk_valuedef 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)def  run(self):json_response=self.parse_url()self.get_trans_ret(json_response)if  __name__=="__main__":query_string="Google 翻译是谷歌公司提供一项免费的翻译服务,可提供 80 种语言之间的即时翻译,支持任意两种语言之间的字词、句子和网页翻译"google=Translate(query_string)google.run()

运行结果见图:

爬取写入后的googletranslate.js的内容:

TKK=eval('((function(){var a\x3d3238994924;var b\x3d-2446116049;return 420013+\x27.\x27+(a+b)})())');
return TKK;

利用tkk和文本内容运算tk的 googletranslate_1.js的内容:

function b(a, b) {  for (var d = 0; d < b.length - 2; d += 3) {  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 < a.length; f++) {  var c = a.charCodeAt(f);  128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 < a.length && 56320 == (a.charCodeAt(f + 1) & 64512) ? (c = 65536 + ((c & 1023) << 10) + (a.charCodeAt(++f) & 1023), g[d++] = c >> 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 < g.length; d++) a += g[d], a = b(a, "+-a^+6");  a = b(a, "+-3^+b+-f");  a ^= Number(e[1]) || 0;  0 > a && (a = (a & 2147483647) + 2147483648);  a %= 1E6;  return a.toString() + "." + (a ^ h)
}  

Python实现爬取google翻译API结果相关推荐

  1. 使用python爬取google翻译的语音

    使用简单方法爬取 请求的url的参数中重要的有四个: 1 q:要播放的译文 2 tl:目标语言代码,la为拉丁语,其他语言代码可以通过查看google翻译的请求得到 3 textlen:请求的译文长度 ...

  2. 忙里偷闲----爬取google 翻译

    需求分析 功能实现: 输入英文,得出中文翻译 输入中文,得到英文翻译 Google翻译地址URL:https://translate.google.cn/ 实现环境 编程语言:python3.6 re ...

  3. Python爬虫爬取Google图片

    文章目录 urllib urllib.request.urlretrieve urllib3 in python3 PoolManager Request BeautifulSoup 安装 Insta ...

  4. python怎么读发音百度翻译-python selenium 爬取百度翻译单词音标-Go语言中文社区...

    python selenium 小爬虫 主要流程 读取excel文件中的单词--利用selenium 去百度翻译中获取单词对应的音标--写入cvs文件 selenium 安装 环境配置略过 谷歌浏览器 ...

  5. python 翻译库本地库_利用python爬取并翻译GEO数据库

    原标题:利用python爬取并翻译GEO数据库 GEO数据库是NCBI创建并维护的基因表达数据库,始于2000年,收录了世界各国研究机构提交的高通量基因表达数据,现芯片集数据量高达12万以上.想要从这 ...

  6. python如何爬取sci论文_利用python爬取并翻译GEO数据库

    GEO数据库是NCBI创建并维护的基因表达数据库,始于2000年,收录了世界各国研究机构提交的高通量基因表达数据,现芯片集数据量高达12万以上.想要从这里面挖掘(bai piao)数据,发个sci提前 ...

  7. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

  8. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  9. 利用python的scrapy框架爬取google搜索结果页面内容

    scrapy google search 实验目的 爬虫实习的项目1,利用python的scrapy框架爬取google搜索结果页面内容. https://github.com/1012598167/ ...

  10. Python爬取百度翻译及有道翻译

    Python爬取百度翻译及网易有道翻译 百度翻译 一.简介 明确翻译链接,百度翻译链接:https://fanyi.baidu.com/,但是该链接不能为我们提供翻译的内容,此时需要在chrome浏览 ...

最新文章

  1. Elasticsearch创建雇员目录
  2. 资源 | 25个深度学习开源数据集,have fun !
  3. C++多态的概念及前提条件
  4. GMV突破1300亿,Lazada下一站去哪?
  5. android服务之录音功能
  6. Spring4:没有默认构造函数的基于CGLIB的代理类
  7. 如何选配合适的百兆或者千兆工业交换机
  8. 今晚直播丨抢鲜体验-openGauss入门
  9. 基于OEA框架的客户化设计(一) 总体设计
  10. ArrayList、Vector、LinkedList的特点和区别
  11. MVC渲染文章内容的html标签转义
  12. 四旋翼自主飞行器探测跟踪系统
  13. 《全网首发》基于SEIR(SIR)对新冠肺炎的分析和预测
  14. python实现决策树 西瓜书_西瓜书学习笔记-决策树
  15. Django:在DDTCMS中使用Photologue做相册并增加封面的探索
  16. 【方便的Opencv】实现图片合成视频+附带图片生成gif
  17. 读书笔记《股票作手回忆录》
  18. 解决 Could not resolve placeholder ‘xxx‘ in string value “${xxx}“
  19. 空降了位领导,三个月后我被离职了!
  20. 从财报看康佳、创维、TCL、海信能否守住家电市场的“江湖地位”?

热门文章

  1. 集体智慧编程chapter5:优化问题
  2. 错误:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 解决方法_QT
  3. 铁甲雄心机器人建造成本_铁甲雄心最强机器人
  4. 离散数学期末复习笔记【精华版】
  5. PHP之 直播开发后端需要做什么——准备工作
  6. Web前端期末大作业-食品零售综合商城模板网页设计源码(HTML+CSS)
  7. VSCODE+MINGW配置vulkan开发环境
  8. 案例 -- web移动端项目(vue)
  9. ExcelToSQLServer-批量导入Excel文件到SQL Server数据库
  10. 高通刷机工具使用介绍