python爬蟲 爬取有道翻譯詳解

2021-10-02 15:50:39 字數 1812 閱讀 8531

這裡我們使用python的urllib來實現

首先,我們需要找到我們進行翻譯時上傳給伺服器的資料。

我們可以通過查詢審查元素中的network這一欄目下,選擇執行post方法的選項。

在general下的request url就是我們訪問的鏈結

而form data下的就是我們所提交的資料,其中的i:就是我們提交的翻譯內容,而這段資料,是通過字典的形式來儲存的,所以我們只需要修改這個i所對應的值即可提交我們想要的翻譯內容。

data =
但是我們並不能這樣直接的提交資料,我們還需要利用到urllib中的parse模組來將我們的資料以utf-8的形式進行編碼

data = urllib.parse.urlencode(data).encode('utf-8')
當我們上傳了資料後,還需要讀取返回的資料,同時再將返回資料通過utf-8的形式進行解碼

我們發現返回來的資料其實是乙個json格式的資料,也就是通過字串來封裝的python的資料結構,所以我們需要匯入這個json

result = json.loads(html)
result = result['translateresult'][0][0]['tgt']
最後

完整**

import urllib.request

import urllib.parse

import json

import time

while true:

target = input("請輸入需要翻譯的內容:")

url = ''

data =

data = urllib.parse.urlencode(data).encode('utf-8')

rep = urllib.request.request(url, data, head)

response = urllib.request.urlopen(rep)

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

result = json.loads(html)

result = result['translateresult'][0][0]['tgt']

print("翻譯結果為:",result)

上面的這個**其實還有很多缺點,因為當我們多次訪問後可能會被伺服器發現訪問者其實只是一段**,所以我們需要通過新增user agent來讓伺服器認為是瀏覽器訪問,並且還需要新增**來防止在同一ip下多次訪問後被ban,這些內容我都會在後面的部落格中寫

爬蟲爬取有道翻譯

這是很久之前寫的1個爬蟲了,也是我寫的第乙個爬蟲,因為恰好網課開始了,很多任務作要在電腦上學習了,總在手機上查英語單詞比較費時費事,於是便想著寫乙個爬蟲直接在電腦上查詞會方便很多,所以寫了乙個爬取有道翻譯的爬蟲。如下 import urllib.request import urllib.parse...

python 爬取有道翻譯(更錯)

import requests def fanyi keyword 定義請求的url url 定義請求的引數 data 發起請求post res requests.post url,data data 獲取請求結果 code res.status code print code 判斷是否請求成功 i...

python練習5 爬取有道翻譯

具體 如下 import urllib.request import urllib.parse 可以實現url的構造,但是去掉也不影響結果 import json 把獲取到的字串轉換成字典的時候需要用到 content input 輸入要翻譯的內容 url 取network裡面找到這個url,把裡面...