1. 程式人生 > >爬蟲破解qq翻譯介面自制一個翻譯工具

爬蟲破解qq翻譯介面自制一個翻譯工具

輸入要翻譯的內容時 , 地址並未發生變化,因此可斷定是向介面傳送的ajax請求

Ajax請求

2

並且可以看到傳送的是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正則匹配操作一波

3

用同樣的方式處理一下請求頭headers,並提取一下response裡的翻譯結果

4

最後程式碼如下,其中的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