一篇文章教會你利用Python網路爬蟲獲取有道翻譯手機版的翻譯介面
【一、專案背景】
有道翻譯作為國內最大的翻譯軟體之一,使用者量巨大。在學習時遇到不會的英語詞彙,會第一時間找翻譯,有道翻譯就是首選。今天教大家如何去獲取有道翻譯手機版的翻譯介面。
【二、專案目標】
多國語言的翻譯,可以翻譯詞語或者句子。
【三、涉及的庫和網站】
1、網址如下:
http://m.youdao.com/translate
2、涉及的庫:requests、lxml
3、軟體:PyCharm
【四、專案分析】
1、點選F12,點選藍色視窗切換成手機模式,執行進入開發者模式,點選network,找到headers下面的form Data。
2、輸翻譯的詞語點選翻譯按鈕,可以看到這裡有兩個引數,一個是inputtext(輸入的詞語),一個是type(代表語種)。
3、構架一個表單傳入這兩個引數,通過改變引數的型別,從而 實現多國的翻譯。
4、通過返回的頁面進行xpath解析資料。
【五、專案實施】
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="http://m.youdao.com/translate"
'''請求頭'''
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型別。例如(中譯韓):
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、輸入你要翻譯的型別。
2、輸入你要翻譯的句子。
【七、總結】
1、本文基於Python網路爬蟲,利用爬蟲庫,獲取有道翻譯的介面。
2、請求介面時構架表單問題進行了詳細的講解。並提供瞭解決方案。
3、大家可以嘗試的去翻譯其他的語言,能夠更好的理解爬蟲的原理。
4、自己嘗試一下,你會發現你也可以 (世上無難事,只怕有心人)。
5、需要本文原始碼的小夥伴,後臺回覆“有道詞典”四個字,即可獲取。
看完本文有收穫?請轉發分享給更多的人
IT共享之家
入群請在微信後臺回覆【入群】
想學習更多Python網路爬蟲與資料探勘知識,可前往專業網站:http://pdcfighting.com/