一篇文章教會你利用Python網路爬蟲獲取有道翻譯手機版的翻譯介面

lvxfcjf發表於2021-09-09

【一、專案背景】


 有道翻譯作為國內最大的翻譯軟體之一,使用者量巨大。在學習時遇到不會的英語詞彙,會第一時間找翻譯,有道翻譯就是首選。今天教大家如何去獲取有道翻譯手機版的翻譯介面。


![image](https://upload-images.jianshu.io/upload_images/9337488-7632c1fa992b9996?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


【二、專案目標】


   多國語言的翻譯,可以翻譯詞語或者句子。


【三、涉及的庫和網站】


1、網址如下:


```

```


2、涉及的庫:**requests**、**lxml**


3、軟體:**PyCharm**


【四、專案分析】


1、點選F12,點選藍色視窗切換成手機模式,執行進入開發者模式,點選network,找到headers下面的form Data。


2、輸翻譯的詞語點選翻譯按鈕,可以看到這裡有兩個引數,一個是inputtext(輸入的詞語),一個是type(代表語種)。


3、構架一個表單傳入這兩個引數,透過改變引數的型別,從而 實現多國的翻譯。


4、透過返回的頁面進行xpath解析資料。


![image](https://upload-images.jianshu.io/upload_images/9337488-75ce625c41550876?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


【五、專案實施】


1、匯入需要庫,建立一個名為YoudaoSpider的類,定義一個初始化方法init。


```

import requests

from lxml import etree

class YoudaoSpider(object):

    def __init__(self):{

       

        }


if __name__ == '__main__':

    spider = YoudaoSpider()

```


#### 2、準備url地址,請求頭headers。


```

'''準備url地址'''

        self.trans_url=""

        '''請求頭'''

        self.headers = {

            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"

```


#### 3、定義get_result方法,傳入兩個引數,構架表單。


```

def get_result(self, word, fro):

        '''構造一個form表單資料---表單是一個字典'''

        data = {

            'inputtext': word,

            'type': fro


        }

```


4、傳送請求, 獲取響應,遍歷得到的結果。


```

response = requests.post(url=self.trans_url, data=data, headers=self.headers)


html = response.content.decode('utf-8')

pa = etree.HTML(html)

# print(html)

pa_list = pa.xpath("//div[@class='generate']/ul/li/text()")

for i in pa_list:

    print("翻譯為:" + i)

```


5、判斷輸入的語種型別,呼叫get_result方法。


點選切換語種就可以看得到各國的type型別。例如(中譯韓):


![image](https://upload-images.jianshu.io/upload_images/9337488-7563fa4614c732e6?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


```

choice = input("1.中翻譯英語  2.中翻韓語 3.把中文翻譯法語 n請選擇1/2/3:n")

if choice == '1':

    fro = 'ZH_CN2EN'

elif choice == '2':

    fro = 'ZH_CN2SP'


elif choice == '3':

    fro = 'ZH_CN2FR'


word = input("請輸入你要翻譯的單詞或句子:")

result = spider.get_result(word, fro)

```


【六、效果展示】


1、輸入你要翻譯的型別。


![image]()


2、輸入你要翻譯的句子。


![image](https://upload-images.jianshu.io/upload_images/9337488-72c10c6bbb411810?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


【七、總結】


1、本文基於Python網路爬蟲,利用爬蟲庫,獲取有道翻譯的介面。


2、請求介面時構架表單問題進行了詳細的講解。並提供瞭解決方案。


3、大家可以嘗試的去翻譯其他的語言,能夠更好的理解爬蟲的原理。


4、自己嘗試一下,你會發現你也可以 (世上無難事,只怕有心人)。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3486/viewspace-2826071/,如需轉載,請註明出處,否則將追究法律責任。

相關文章