爬蟲破解qq翻譯介面自制一個翻譯工具
輸入要翻譯的內容時 , 地址並未發生變化,因此可斷定是向介面傳送的ajax請求
並且可以看到傳送的是post請求,請求表單資料和響應資料都可以找到,複製form表單資料,然後換一個詞翻譯,同樣複製form表單資料,比較兩個表單資料有哪些不同,以方便去模仿構造資料
Form Data source: auto target: en sourceText: 大象 qtv: fb7019db18d2efd2 qtk: tMDoh4iZnYF7a6MshJPtOvA7vXOMj0j+MUFcj6Ogl94MkIim6UUYl/KC4sv03GvVBnb2t6BbmOnew9ASvvKDh+sjJh7tOjLhy1W1M/S/xofJ469ZnMym2es4NJ2Ux8q3pZ0r/RCLPOPc15BSupGOcQ== sessionUuid: translate_uuid1542022141842 Form 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正則匹配操作一波
用同樣的方式處理一下請求頭headers,並提取一下response裡的翻譯結果
最後程式碼如下,其中的form_dict要轉下碼 urlopen傳參也要傳data引數,這樣才是post請求
#coding:utf-8 import urllib2 import urllib import json import time def 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 result if __name__ == '__main__': while True: text = raw_input('請輸入要翻譯的內容[支援多種語言]:') qq_fanyi(text)
相關推薦
爬蟲破解qq翻譯介面自制一個翻譯工具
輸入要翻譯的內容時 , 地址並未發生變化,因此可斷定是向介面傳送的ajax請求 並且可以看到傳送的是post請求,請求表單資料和響應資料都可以找到,複製form表單資料,然後換一個詞翻譯,同樣複製form表單資料,比較兩個表單資料有哪些不同,以方便去模仿構造資料
C# 實現呼叫百度翻譯API做一個翻譯功能
appId 和 passWord 需要到百度翻譯開放平臺申請 using System; using System.Net; using System.Web.Security; using System.Web.Script.Serialization; n
用java多執行緒實現“百度翻譯介面API快速翻譯”
不知道為啥,突然開始想寫部落格,可能是想找個地方寫點東西,煽情文藝的咱寫不了,就寫技術貼好了。不當之處,還希望同志們多多指教,不勝感激。 API準備:自己先到百度去申請一個百度翻譯API,話說百度翻譯還是可以的,每個月200W字元的免費翻譯,不做商業的基本夠用了,感謝百
基於百度通用翻譯API的一個翻譯小工具
digest 函數 清除 之前 file ram json 添加 msi 前幾天寫了一個簡單的翻譯小工具,是基於有道翻譯的,不過那個翻譯接口有訪問限制,超過一定次數後會提示訪問過於頻繁,偶然發現百度翻譯API如果月翻譯字符少於200萬是不收取費用的,所以就註冊了一個百度開發
有道翻譯介面 破解
有道翻譯 API 最近有些任務需要將中文翻譯成英文,由於個人英文水平問題,每次都要開啟好幾個線上翻譯網頁,一句一句的丟進去,取最佳者為所用,甚是麻煩。 任務完成之後,就稍微研究了一下各個翻譯介面(Github地址,求star),下面以 “有道翻譯 API”
騰訊翻譯介面 破解
前面分別介紹了《有道翻譯介面 破解》《谷歌翻譯介面 破解》及《百度翻譯介面 破解》,下面來嘗試一下騰訊翻譯介面(Github地址,歡迎star)。 老規矩,上圖: 可得到 Request URL
運用有道api介面寫一個小翻譯(簡單版)
package com.zhidi.zuoye; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStrea
愛詞霸翻譯介面 破解
前面分別介紹了《有道翻譯介面 破解》《谷歌翻譯介面 破解》《百度翻譯介面 破解》及《騰訊翻譯介面 破解》,下面來嘗試一下金山愛詞霸翻譯介面(Github專案地址,歡迎star)。 我們來看一下愛詞霸
(翻譯)2016美國數學建模MCM E題(環境)翻譯:我們朝向一個幹旱的星球?
make 歷史 evel miss try 這一 aspect content analyzing PROBLEM E: Are we heading towards a thirsty planet? Will the world run
Python爬蟲教程-08-post介紹(百度翻譯)(下)
enc 需求 爬蟲 https 構造 單純 滿足 keyword st2 Python爬蟲教程-08-post介紹(下) 為了更多的設置請求信息,單純的通過urlopen已經不太能滿足需求,此時需要使用request.Request類 構造Request 實例 req =
爬取百度翻譯介面
https://fanyi.baidu.com/v2transapi 會報錯 2 嘗試切換到移動端看看結果 https://fanyi.baidu.com/basetrans 這才是正確的介面 3 程式碼展示
呼叫百度翻譯介面
表單提交頁面ajax提交 百度翻譯 </textarea> 控制器頁面 <?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use Ap
一個翻譯app的開發全過程---編碼+打包+上架
翻譯 ron ast rip 請求 ont navigator sage sta 前言: 心血來潮。(受不了現在某翻譯app煩人的廣告)冒出想法,自己通過百度提供的翻譯api接口自己去做一個簡易的app來用。小白項目,大佬勿噴 :)
啥年代了啊!誰還用翻譯軟體?我直接用Python自制的翻譯機器人!
這正是應用程式程式設計介面(Application Programming Interface,API)的用處,它為不同的應用提供了友好方便的介面。不同開發者不同的架構,甚至不同的程式語言也沒問題。這就實現了不同軟體進行資訊共享。 儘管不同的軟體應用都有不同的API,但A
Serializable介面--原始碼及翻譯
通過實現Serializable介面,可以讓一個類的擁有序列化和反序列化的能力。可序列化類的所有子類,都可以序列化。這個介面沒有任何的方法定義,它僅僅只是標記某個類能被序列化和反序列化。 想讓一個非序列化類的子類擁有序列化能力,這個子類在反序列化的時候,需要恢復父類的public、protect
利用Python寫一個破解QQ音樂的指令碼,海量付費歌曲任意下載!
有些時候我們需要下載一些音樂檔案到本地,比較操蛋是必須要付費,所以寫了一個下載器用!! 在這裡小編多說一句,那些想要入門Python的同學,加群:943752371可以獲取Python入門學習資料哦! 開發工具 Python版本:3.7相關模組:reque
英語沒學好?不要緊!自己弄一個翻譯軟體就行了!Python打造!
用Charles爬取資料 Windows用Fiddler也差不多。 Charles是一個多平臺的抓包工具,可以很方便的抓取http和https資料。 1.抓取資料 抓取資料前我們首先要清楚,由於有道詞典的翻譯使用的是post請求,所以我們要抓取的資訊有:url連結、request h
利用Python寫一個破解QQ音樂的指令碼, 海量付費歌曲任意下載!
有些時辰我們必要下載一些音樂檔案到本地,鬥勁操蛋是必需要付費,所以寫了一個下載器用!! 開發工具 Python版本:3.7相干模組:requestsreurllibosffmpeg QQ音樂網站資料哀求url 第一個介面必要按照歌曲名機關完好連結來搜
(翻譯)2016美國數學建模MCM E題(環境)翻譯:我們朝向一個乾旱的星球?
PROBLEM E: Are we heading towards a thirsty planet? Will the world run out of clean water? According to the United Nations, 1.6 bill
matrix工業相機驅動wxPropView介面部分英文翻譯
comprehensive:綜合的 modify device properties:修改裝置屬性 grid:網格 accessible:可理解的 tree control:樹 控制 complete image:完整影象 Now we will get out first