天天看點

python 通過通路有道詞典來實作翻譯首先了解第三方urllib

小甲魚課程,通過requests實作通路并擷取資料

  • 首先了解第三方urllib

首先了解第三方urllib

  • urllib是Python自帶的标準庫,無需安裝,直接可以用

    主要提供了以下功能:

    • 網頁請求
    • 響應擷取
    • 代理和cookie設定
    • 異常處理
    • URL解析
    • (詳細用法可以百度了解一下)

因為是跟課程寫的,是以可以推薦大家去看一下視訊。

b站視訊

首先我們要擷取通路的網址

> 在百度搜尋 ‘有道翻譯’
> 然後打開,檢視源代碼,點選Network,然後在翻譯框裡随便輸入一個翻譯内容,便可發現源代碼框裡有一個translate開頭的一個子產品點選進去,找到Headers下的
> Request URL:Request URL: http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
> 這個就是我們要的通路網址。
           

如圖

python 通過通路有道詞典來實作翻譯首先了解第三方urllib
接下來再找到data闆塊,将裡面的内容複制下來
           
python 通過通路有道詞典來實作翻譯首先了解第三方urllib

找到這兩部分接下來就可以寫代碼了。

代碼

```python
import urllib.request
import urllib.parse
import json           #導入庫

content = input("請輸入要翻譯的内容 : ")   #讀取翻譯内容

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'  #将通路網址指派給url 變量。這裡要删除掉‘_o’這一部分要不然可能通路失敗


data = {}  #定義一個字典,将data資料存入

data['i'] = content
data['doctype'] = 'json'

# data = urllib.parse.urlencode(data).encode('utf_8')
# response = urllib.request.urlopen(url, data)
# html = response.read().decode('utf-8')
# target = json.loads(html)
# print("result: %s" % (target['translateResult'][0][0]['tgt']))

#後來發現隻需要将 ‘i’,‘docype’ 存入就可以了,其他的無所謂。

data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
html = response.read().decode('utf-8')
target = json.loads(html)
print("翻譯的結果為 : %s" % (target['translateResult'][0][0]['tgt']))


           
**接下來就可以嘗試一下了。**