- 1 -
很牛掰?其實沒啥用
網上很多文章,介紹怎麼用Excel輕鬆呼叫有道線上翻譯介面,實現中英文自動翻譯的,主要是使用了WEBSERVICE + FILTERXML函式:
其中,webservice函式負責呼叫介面,filterxml負責從返回的內容裡提取翻譯結果。
看著很牛掰,是不是?其實啊,沒啥用!
為什麼?
這些文章裡,一般只是舉了1項或少數幾項內容,或者只是運行了一次,當然可以成功,但是,如果需要翻譯的專案很多呢?比如說,幾百個,甚至幾千個短語,即需要重複多次呼叫這個介面,你試試?
而且,當在Excel裡出錯後,直接用網站登入訪問有道都同樣會被斃掉:
更關鍵的是,既然
要用excel自動出結果,通常來說,要翻譯的內容就不會只要那麼幾項
。
那為啥資料多了就取不到結果了?
其實很簡單!並不是因為這些函式有問題,而是,類似於網站的“防爬”機制,當來自同一電腦的介面呼叫過於頻繁時,伺服器方面當然會做限制的——畢竟,任何一次訪問,都是有成本的。
- 2 -
PAD模擬人工操作網頁
這種情況下,我們完全可以透過Power Automate Desktop模擬手工訪問網站的方式,按需要、分次、整體、自動填充待翻譯內容,獲取翻譯結果。
Step-01 開啟檔案(如Excel),讀取待翻譯內容
Step-02 從Excel工作表中讀取資料
Step-03 提取Excel資料表中的列
Step-04 啟動chrome,開啟翻譯網站
Step-05 填充網頁上的文字欄位
將從Excel中讀取的待翻譯內容,填充到翻譯網站的文字框(透過新增UI元素拾取)中。
Step-06 獲取網頁上的詳細資訊
經過上一步將待翻譯內容填入後,網站會自動執行得到翻譯結果:
透過“獲取網頁上的元素的詳細資訊”步驟,基於“新增UI元素”,獲取翻譯結果內容(innertext):
在新增UI元素時,注意獲取翻譯結果最內層的div,以免出現多餘的資訊:
Step-07 拆分文字
因為我們要將翻譯結果分開每一行對應回Excel表中,所以,要對獲取的翻譯結果,按行進行拆分:
Step-08 寫入Excel工作表
將拆分後的翻譯結果,寫回Excel工作表中:
因為前面步驟進行了拆分,所以寫入到指定單元格,如B2,得到的結果將會寫到從B2開始的每一行裡:
Step-09 關閉Web瀏覽器
翻譯內容獲取完畢,不要忘了關閉開啟的Web瀏覽器:
Step-10 關閉Excel
最後,按需要關閉Excel檔案:
- 3 -
突破的不僅僅是Excel
透過採用Power Automate for Desktop,我們
模擬人工查閱的方式,可以最大限度地發揮將多個單元格的內容自動地整合到一起,一次性翻譯後,再將翻譯結果整體獲取返回Excel的全過程,從而避免了Excel針對每項頻繁呼叫翻譯介面可能導致的網站遮蔽問題。
同時,透過Power Automate for Desktop,
不僅可以從Excel中讀取要翻譯的內容,還可以讀取更多其他格式的檔案,如文字、word、pdf……,全面突破Excel公式本身的限制……並且,翻譯的結果,可以按需要輸出到其他所需要應用的地方!
——這就是Power Automate for Desktop的強大之處,也是RPA(Robotic process automation:機器人流程自動化)的魅力!
-
最通俗易懂Power系列影片
-
購書領60元影片券 or 直購影片送簽名書