python爬蟲學習---爬取微軟必應翻譯(中英互譯)


 

前言
本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。
作者:OSinooO

       本人屬於python新手,剛學習的 python爬蟲基礎迫不及待地想試一試,看了論壇里大佬們寫的在線翻譯爬蟲程序,想着自己把它寫出來,以下是我爬微軟翻譯的過程,作為筆記記錄下來:

 

1.獲取信息

    要實現在線翻譯過程,首先要獲得目標網站的信息,我們先打開微軟必應翻譯的官網(https://cn.bing.com/translator):

        我們需要獲得它的翻譯請求和響應信息,操作如下:

        (1)右鍵“檢查”(用的Google Chrome瀏覽器),進入這個界面:

        也可以通過右上角》更多工具》開發者工具進入。

        (2)選擇“Network”

        (3)輸入我們想翻譯的內容,先輸入“hello”,選擇簡體中文:

        可以看到右邊出了很多抓到的包,點開看一下。

        (4)找到response(響應)里面出現了翻譯結果的包

        (5)接下來就是獲取URL和data信息了,在“Headers”部分就可以看到。這里的URL是處理我們請求翻譯的網頁地址,當網頁請求方式為POST時,請求參數存放在data(類型為字典)里。

        URL:https://cn.bing.com/ttranslate?&category=&IG=C4A52C35D175427988E6510779DEFB5F&IID=translator.5036.8

 

   這里我要說明一下,我在第一次找URL的時候找到的是這個:

      https://cn.bing.com/ttranslate?&category=&IG=7E72C4A882064F48BAD8D7C06B7F22A9&IID=translator.5036.1

   

         用這個URL也可以翻譯,但是只能翻譯單個單詞和詞語,在后面的代碼中如果翻譯了長句子就會報錯。所以提取參數的時候可以把翻譯內容多寫一點,找到能長句翻譯的URL。

        data:{‘text’:'hello', 'from':'en', 'to':'zh-CHS'}這里用字典形式寫出來,簡單解讀就是'text'是翻譯的內容,'from'是翻譯內容的語言,這里的'en'就代表英語,'to'是翻譯結果的語言,'zh-CHS'代表簡體中文。這些之后要用到。

 

2.代碼構建

        得到信息之后就可以開始寫代碼了,具體可以參考文章開頭的兩篇參考博文,這里直接給出代碼:如果你看不懂的話,建議先去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,里面有最新Python教程項目可拿,多跟里面的人交流,進步更快哦!

 

import requests

url = 'https://cn.bing.com/ttranslate?&category=&IG=C4A52C35D175427988E6510779DEFB5F&IID=translator.5036.8'

def translate_weiruan(info,fr='zh-CHS',to="en"):
    print('翻譯結果:'+requests.post(url,data={'text':info,'from':fr,'to':to,'doctype':'json'}).json()['translationResponse'])

def is_Chinese(str):       #判斷輸入的內容是否是中文
    for ch in str:
        if '\u4e00' <= ch <= '\u9fff':
            return True
        else:
            return False

def start_translate():
    trans = input('翻譯內容:')
    if is_Chinese(trans):        #實現自動判斷,中英互譯
        translate_weiruan(trans)
    else:
        translate_weiruan(trans,fr='en',to='zh-CHS')

if __name__ == '__main__':
    print('          翻譯結果由微軟翻譯提供!(請確保網絡已連接)')
    while True:
        start_translate()
        print('\n')

        這里用的requests模塊,可以用一句話實現我們的功能,具體參考文章開頭的第二篇博文。

        再簡單解釋一下:

 

def translate_weiruan(info,fr='zh-CHS',to="en"):
    print('翻譯結果:'+requests.post(url,data={'text':info,'from':fr,'to':to,'doctype':'json'}).json()['translationResponse'])

        這段代碼的功能就是用POST方式連接翻譯網站(url)並給它傳參數(data),返回一個 json 類型的信息,再用 json()方法對信息進行處理。返回的信息如下:

        很簡單的字典類型:{"statusCode":200,"translationResponse":"你好"}

        再用關鍵字"translationResponse"提取翻譯結果。

 

3.實戰結果                                                                                                                                                                   

        OK,也算是初步完成功能啦!當然里面也還是有很多不足,還請各位大牛指點。如果你也正在學習,可以去如果你看不懂的話,建議先去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下可以找到了,里面有最新Python教程項目可拿,多跟里面的人交流,進步更快哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM