閱讀內容包含大量英文的 ppt、word、excel 或者記事本時,由於英語不熟悉,為了流利地閱讀,需要開啟瀏覽器進入谷歌翻譯的主介面,然後把英文複製到谷歌翻譯的輸入框中,最後又把翻譯結果複製回 ppt、word 和 excel。
要是乙個兩個單詞還好,要是發現有 100 個單詞不認識,就必須複製貼上 200 次,如此機械性重複性的工作,應該交給程式來做,這就是我設計下面這個自動化翻譯工具的初衷。
如上圖,執行程式並保持後台執行,在電腦上的任何乙個軟體中選擇一段文字,並 ctrl + c 複製到系統剪貼簿中,程式就會自動幫助我們完成翻譯,並將翻譯結果自動複製到系統剪貼版中,只需 ctrl + v,就完成了翻譯結果對原文的替換。
如果有想學習python的程式設計師,可來我的python學習扣qun:835017344程式主要分為兩部分,第一部分為谷歌翻譯爬蟲,第二部分就是實現這個將翻譯結果自動替換的業務邏輯。
谷歌翻譯爬蟲
通過瀏覽器 f12 開發者工具,很容易定位到翻譯請求的 url:
&dt=t&ie=utf-8&oe=utf-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2
這個請求接受兩個引數,乙個就是我們要翻譯的字串 q,另乙個是用於使用者認證的 tk(token),其中 q 很容易構造,tk 的構造就需要花費一番心力了,需要我們除錯 js **,這裡參考 github 上大神的輪子:
谷歌翻譯爬蟲的主要**如下:
返回結果是 json 形式的,翻譯結果儲存在結果的第乙個元組中。def translate(tk, content):
if len(content) > 4891:
print("翻譯的長度超過限制!!!")
return
param =
result = requests.get("""
&tl=zh-cn&hl=zh-cn&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss
&dt=t&ie=utf-8&oe=utf-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2""", params=param)
data = result.json()
print(data[0][0][0])
python 作業系統剪貼簿
將讀取剪貼簿的內容的**封裝成函式如下:
返回值 d 是位元組型別的,需要解碼,中文按 gbk 格式解碼,英文按 utf-8 解碼。def gettext():#讀取剪下板
# 開啟剪貼簿
w.openclipboard()
# 讀取剪貼簿的內容
d = w.getclipboarddata(win32con.cf_text)
# 關閉剪貼簿
w.closeclipboard()
try:
return d.decode('utf-8')
except:
return d.decode('gbk')
類似地,寫入剪貼簿的**如下:
實現將翻譯結果自動替換原文的邏輯的**如下:def settext(astring):#寫入剪下板
# 開啟剪貼簿
w.openclipboard()
# 清空剪貼簿
w.emptyclipboard()
# 寫入剪貼簿
w.setclipboardtext(astring)
# 關閉剪貼簿
w.closeclipboard()
值得注意的是,系統剪貼簿物件是單例模式的,在作業系統範圍內只有乙個,而且讀寫剪貼簿都是互斥的,在讀(寫)剪貼簿的同時不允許任何對剪貼簿的寫(讀)操作。試想這樣一種情景,我們在其他軟體中 ctrl + c 寫入剪貼簿,而此時我們的程式**正好執行到讀剪貼簿那一行,毫無疑問會報錯,我的解決辦法是使用 try…except 語句延時 1 s再讀取,這樣可以大大降低讀寫碰撞的概率,但無疑消耗了程式效能while(true):
# 如果剪貼簿正在被占用
try:
cs = gettext()
except:
time.sleep(1)
cs = gettext()
print('cs',cs)
if cs and cs != ls:
print('準備翻譯')
content = gettext()
tk = js.gettk(content)
res = translate(tk, content)
settext(res)
time.sleep(1)
ls = res
python實現自動化列印
這次真的是出於實際需要,想要用python寫個小指令碼 老闆發給我乙份包含幾百個人資訊的pdf檔案,如果乙份乙份開啟檔案,點列印我感覺要看到眼花。發現呼叫電腦程式需要用到win32這個庫,而且初略的看了下就發現此庫非常nb,怎麼說,這個庫可以同計算機進行互動,比如彈出提示框,或者呼叫系統內建一些程式...
如何使用Python和Nose實現自動化測試?
如何使用python和nose實現自動化測試?reset.sh ios pip install r requirements.txt 接下來執行樣例測試 nosetests py desired capabilities 引數用來指定執行平台 ios 6.0 以及我們想測試的應用。接下來我們還新增了...
Python實現網頁自動化朗讀
是不是有的時候懶得自己看新聞?那麼不妨試試用 python 來朗讀給你聽吧。網頁轉換成語音,步驟無外乎 網頁正文識別,獲取到正文的文字內容 文字轉語音,通過介面將文字轉換成語音檔案 語音檔案的發聲,即將語音檔案讀出 01 網頁正文識別 之所以用 python,就是因為 python 有著豐富的庫,網...