如何利用python爬蟲調用百度翻譯

這篇文章主要為大家展示了“如何利用python爬蟲調用百度翻譯”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何利用python爬蟲調用百度翻譯”這篇文章吧。

公司主營業(yè)務:網站制作、成都網站設計、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯建站推出西盟免費做網站回饋大家。

1.百度翻譯網頁分析

首先我們打開百度翻譯:

如何利用python爬蟲調用百度翻譯

然后按F12,打開調試,然后點擊network

如何利用python爬蟲調用百度翻譯

經過我們的分析,我們可以分析到百度翻譯的真實post提交頁面是Request URL:https://fanyi.baidu.com/sug  并且我們可以發(fā)現form data 里面有一個鍵值對kw:day

如何利用python爬蟲調用百度翻譯

經過初步分析,我們應該有個大概的思路了,無非就是通過這個網址,我們post提交一些數據給他,然后他會返回一個值給我們(其實到后面我們知道這個數據它是通過json格式返回給我們的)

2.開始寫代碼

1.首先我們都要導入我們需要的庫以及定義一下我們的網址和要翻譯的單詞(這里我們是用戶輸入)

from urllib import request, parse
import json

   baseurl = "https://fanyi.baidu.com/sug"
   word = input("請輸入您想輸入的單詞:")
 

2.因為我們通過上面的分析,知道了我們傳給它的值(也就是我們要翻譯的單詞)是通過鍵值對的形式來傳遞的,所以我們就可以使用python里面的字典格式進行定義

# 我們需要傳送過去的數據
   datas = {
       'kw': word
   }
 

3.然后我們會通過parse來對這個datas進行編碼,因為此時的字典類型是字符串類型,我們傳送過去的應該是一個bytes類型,如果不進行編碼,后面會報錯滴!

# 對數據進行編碼

   data = parse.urlencode(datas).encode()
 

4.其次,我們要寫出訪問百度翻譯網站的headers,這個headers可以模擬瀏覽器進行訪問,當然我們這種訪問只需要寫出我們傳輸的值得長度就夠了,其他的參數沒有必要去寫。

# 寫http頭部,至少需要Content-Length
   headers = {
       # 此處為編碼后的長度
       'Content-Length': len(data),
   }
 
 

5.我們把要傳輸的數據(單詞)和訪問該網站的headers寫好了之后,就進行最關鍵的一步,就是把我們寫好的這些東西傳輸到百度翻譯的網站上

 

# 將數據傳送
   req = request.Request(url=baseurl, data=data, headers=headers)
   res = request.urlopen(req)
 

      我們首先使用request里面的Request對象將 url網址,data數據, headers頭文件傳入到req對象。然后再將req這個對象寫入request的urlopen。

   6.  此時,post數據部分我們已經完成了,res就是返回給我們的數據對象。我們再通過read方法,把這個返回的數據對象讀取出來,然后通過decode方法進行編碼(此時編碼后就成了一個json格式的數據),最后我們將它進行json格式解析。

json_data = res.read()

json_data = json_data.decode()

json_data = json.loads(json_data)
 

我們打印一下json_data

如何利用python爬蟲調用百度翻譯

7.最后一步就是將我們用戶想看到的東西提取出來,我們分析這個json里面的data所對應的值是一個list對象,所以我們提取data的值之后就可以像list一樣去處理數據了!

data_list = json_data.get('data')
   for item in data_list:
       print(item['k'], '---', item['v'])
 

最后結果:

如何利用python爬蟲調用百度翻譯

完整代碼

'''
利用爬蟲調用百度翻譯----power:IT資源君
'''
from urllib import request, parse
import json

if __name__ == '__main__':
   baseurl = "https://fanyi.baidu.com/sug"
   word = input("請輸入您想輸入的單詞:")
   # 我們需要傳送過去的數據
   datas = {
       'kw': word
   }
   # 對數據進行編碼
   data = parse.urlencode(datas).encode()
   # 寫http頭部,至少需要Content-Length
   headers = {
       # 此處為編碼后的長度
       'Content-Length': len(data),
   }
   # 將數據傳送
   req = request.Request(url=baseurl, data=data, headers=headers)
   res = request.urlopen(req)

   json_data = res.read()
   json_data = json_data.decode()
   json_data = json.loads(json_data)
   # data里面是一個list
   data_list = json_data.get('data')
   for item in data_list:
       print(item['k'], '---', item['v'])

以上是“如何利用python爬蟲調用百度翻譯”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!

分享名稱:如何利用python爬蟲調用百度翻譯
當前URL:http://muchs.cn/article12/ihgedc.html

成都網站建設公司_創(chuàng)新互聯,為您提供標簽優(yōu)化營銷型網站建設、品牌網站設計、App設計網站設計公司、動態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站建設網站維護公司