爬虫破解qq翻译接口自制一个翻译工具

news/2024/12/2 15:04:56/

输入要翻译的内容时 , 地址并未发生变化,因此可断定是向接口发送的ajax请求

Ajax请求

清空一下审查窗口,再点击一次翻译可以发现实际发送请求的url为https://fanyi.qq.com/api/translate

2

并且可以看到发送的是post请求,请求表单数据和响应数据都可以找到,复制form表单数据,然后换一个词翻译,同样复制form表单数据,比较两个表单数据有哪些不同,以方便去模仿构造数据

Form Data
source: auto
target: en
sourceText: 大象
qtv: fb7019db18d2efd2
qtk: tMDoh4iZnYF7a6MshJPtOvA7vXOMj0j+MUFcj6Ogl94MkIim6UUYl/KC4sv03GvVBnb2t6BbmOnew9ASvvKDh+sjJh7tOjLhy1W1M/S/xofJ469ZnMym2es4NJ2Ux8q3pZ0r/RCLPOPc15BSupGOcQ==
sessionUuid: translate_uuid1542022141842Form Data
source: auto
target: en
sourceText: 熊猫
qtv: fb7019db18d2efd2
qtk: tMDoh4iZnYF7a6MshJPtOvA7vXOMj0j+MUFcj6Ogl94MkIim6UUYl/KC4sv03GvVBnb2t6BbmOnew9ASvvKDh+sjJh7tOjLhy1W1M/S/xofJ469ZnMym2es4NJ2Ux8q3pZ0r/RCLPOPc15BSupGOcQ==
sessionUuid: translate_uuid1542022664896

可以看到 表单不同处只是输入的关键词和sessionUuid,看uuid后面的数字不知道是啥,有点像时间戳,去站长之家的工具箱搜了一下确实是毫秒制的时间戳(15位数字一般是时间戳,小写字母十六进制的一串一般是MD5、SHA1加密,大写字母加数字一般是Base64加密)

将Form表单数据粘到sublime正则匹配操作一波

3

用同样的方式处理一下请求头headers,并提取一下response里的翻译结果

4

最后代码如下,其中的form_dict要转下码   urlopen传参也要传data参数,这样才是post请求

#coding:utf-8
import urllib2
import urllib
import json
import timedef qq_fanyi(text):headers = {"Accept": "application/json, text/javascript, */*; q=0.01",#  py2的urllib2不支持压缩# "Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9","Connection": "keep-alive","Host": "fanyi.qq.com","Origin": "https://fanyi.qq.com","Referer": "https://fanyi.qq.com/","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36","X-Requested-With": "XMLHttpRequest",# 请求体的长度"Content-Length": "288","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","Cookie": "fy_guid=1ebf7009-a752-4e96-9c00-6f1716ff5feb; pgv_info=ssid=s2052501920; ts_refer=www.baidu.com/link; pgv_pvid=6854096010; ts_uid=4010684990; gr_user_id=0d431726-9e54-48b8-9a03-ef467bab3c4f; grwng_uid=42c02436-79da-49fe-b367-4f577cfe293f; 9c118ce09a6fa3f4_gr_session_id=3eed6036-7a72-4c3d-8307-f49cc268ffd1; qtv=fb7019db18d2efd2; qtk=tMDoh4iZnYF7a6MshJPtOvA7vXOMj0j+MUFcj6Ogl94MkIim6UUYl/KC4sv03GvVBnb2t6BbmOnew9ASvvKDh+sjJh7tOjLhy1W1M/S/xofJ469ZnMym2es4NJ2Ux8q3pZ0r/RCLPOPc15BSupGOcQ==; ts_last=fanyi.qq.com/; openCount=2; 9c118ce09a6fa3f4_gr_session_id_3eed6036-7a72-4c3d-8307-f49cc268ffd1=true"}# 生成查询时的时间戳uuid = int(time.time() * 1000)form_dict ={"source":"auto","target":"en","sourceText":text,"qtv":"fb7019db18d2efd2","qtk":"tMDoh4iZnYF7a6MshJPtOvA7vXOMj0j+MUFcj6Ogl94MkIim6UUYl/KC4sv03GvVBnb2t6BbmOnew9ASvvKDh+sjJh7tOjLhy1W1M/S/xofJ469ZnMym2es4NJ2Ux8q3pZ0r/RCLPOPc15BSupGOcQ==","sessionUuid":"translate_uuid" + str(uuid)}form_data = urllib.urlencode(form_dict)headers['Content-Length'] = len(form_data)url = 'https://fanyi.qq.com/api/translate'request = urllib2.Request(url, form_data, headers=headers)response = urllib2.urlopen(request)# 从响应中提取翻译后的结果json_data = json.loads(response.read())result = json_data['translate']['records'][0]['targetText']print resultif __name__ == '__main__':while True:text = raw_input('请输入要翻译的内容[支持多种语言]:')qq_fanyi(text)

 


http://www.ppmy.cn/news/410939.html

相关文章

【Realtek sdk-3.4.14b】RTL8197G增加YT8531 Switch

问题描述 Realtek sdk-3.4.14b增加YT8531 Switch芯片支持 代码修改 修改rtl819x/linux-3.10/drivers/net/phy/Kconfig --- a/rtl819x/linux-3.10/drivers/net/phy/Kconfig +++ b/rtl819x/linux-3.10/drivers/net/phy/KconfigCurrently, only 8-bit registers are supported.…

推荐一个免费翻译接口

网站:http://fy.iciba.com 这个翻译接口非常好用,直接看python代码: # coding:utf8 from requests import Sessions Session() url http://fy.iciba.com/ajax.php params {a: fy,f: auto,t: auto,w: 测试 } r s.request(get, url, params…

免费的翻译接口用不起不要太爽啊!

本文给大家提供一个免费的翻译接口,有空时可以试试还是很秀的哈! 前言 项目中必要的数据是需要写语言包的,就像那种几百年不变的数据,但是有一类数据就是在项目的运行的过程中就在一直变化。 对于这样的数据我们写成语言包显然是…

bing翻译api php,免费翻译接口

[免费翻译接口](https://www.cnblogs.com/fanyang1/p/9414088.html) ## **google** ``` http://translate.google.cn/translate_a/single?client=gtx&dt=t&dj=1&ie=UTF-8&sl=auto&tl=zh_TW&q=calculate ``` 返回结果: ``` {"sentences": […

Virtual Serial Port Driver Pro 9.0的破解和汉化

Virtual Serial Port Driver Pro 9.0 官方原版: https://cdn.eltima.com/download/vspdpro.exe Virtual Serial Port Driver PRO 是基于「虚拟串口驱动程序」功能的高效一体化软件。 该程序有助于创建虚拟串口捆绑并设置自定义端口参数,这使得该解决方案非常适合各…

电脑音频,realtek高清晰音频管理器

realtek高清晰音频管理器是一款专业的电脑音频设备管理软件,通过realtek高清晰音频管理器,我们可以调节音量的大小,也可以对声音的环境、均衡器和混音器等设置进行调节。从而可以让用户在听音乐、看电影时可以听到清楚的声音。欢迎来华军软件园下载使用。 realtek高清晰音频…

realtek是什么意思_Realtek是什么意思

1. Special distribution and sale of Samsung, Winbond, DAVICOM, EM, WIZINET REALTEK, AMS, HTC, UTC, new-mao, Elan, ATMEL, SPANSION, HOLTEK, TI, ST, PHILIPS, AMIC part of line products, in the electronics sector enjoyed a very high reputation. 特約分銷及銷售…

基于协同过滤算法的外贸出口电子电器产品的推荐系统的设计与实现源码+文档

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于协同过滤算法的外贸出口电子电器产品的推荐系统的设计与实现源码文档 视频演示 https://www.bilibili.com/video/BV1HW4y197Fe/ 系统介绍 摘 要 …