您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何利用python爬蟲調用百度翻譯”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何利用python爬蟲調用百度翻譯”這篇文章吧。
首先我們打開百度翻譯:
然后按F12,打開調試,然后點擊network
經過我們的分析,我們可以分析到百度翻譯的真實post提交頁面是Request URL:https://fanyi.baidu.com/sug 并且我們可以發現form data 里面有一個鍵值對kw:day
經過初步分析,我們應該有個大概的思路了,無非就是通過這個網址,我們post提交一些數據給他,然后他會返回一個值給我們(其實到后面我們知道這個數據它是通過json格式返回給我們的)
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
7.最后一步就是將我們用戶想看到的東西提取出來,我們分析這個json里面的data所對應的值是一個list對象,所以我們提取data的值之后就可以像list一樣去處理數據了!
data_list = json_data.get('data')
for item in data_list:
print(item['k'], '---', item['v'])
最后結果:
'''
利用爬蟲調用百度翻譯----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爬蟲調用百度翻譯”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。