作者丨Frank Andrade
譯者丨王德朕
如果你正在學(xué)習(xí)Python,那應(yīng)該嘗試在日常任務(wù)中實現(xiàn)自動化。這個過程中不僅能通過實踐已經(jīng)掌握的知識來繼續(xù)學(xué)習(xí)Python,而且會讓你看到努力是可以得到回報的。
最近,由于缺乏時間,我經(jīng)常將工作任務(wù)用自動化實現(xiàn),這里多虧我有5個新項目,我將它們分為初級、中級和高級。你會發(fā)現(xiàn)每個項目的完整腳本和教程地址,此外,我還為每個項目布置了一個挑戰(zhàn)任務(wù),用于測試你的Python能力。
微軟Word自動化 (初級項目)
你有多少次不得不使用Word來創(chuàng)建求職信、合同協(xié)議、簡歷或報告呢?如果你數(shù)不過來,那這個項目就是為你準備的。
在這個項目中,我們需要使用Python和一個名為docxtpl 的庫來自動生成Word文檔,為此,需要準備一個用于實現(xiàn)自動化任務(wù)的文檔模板,在模板中,我們必須為要替換的單詞上添加占位符,占位符用 {{}} 表示。
為了簡單起見,我已經(jīng)為求職信創(chuàng)建了一個模板。
圖片由作者提供
為了使這個項目對初學(xué)者友好,只需使用 Python 和 docxtpl 替換元素 {{my_name}}、{{my_phone}}、{{my_email}}、{{my_address}}和{{today_date}}即可。
挑戰(zhàn)任務(wù):如果你想讓這個項目更上一層樓,可嘗試從Excel文件中提取數(shù)據(jù),并在Word模板中引入它。
上述教程的第二部分有一個Excel文件,該文件如下表所示。
+-------+-----+------------+----------------+
| Name | ... | address | job |
+-------+-----+------------+----------------+
| Frank | ... | 123 Avenue | Data Scientist |
| ... | ... | ... | ... |
| John | ... | XYZ Avenue | Web Developer |
+-------+-----+------------+----------------+
你應(yīng)該為表的每一行生成一個文檔。
自動發(fā)送電子郵件(初級項目)
我曾經(jīng)做過最無聊的工作任務(wù)之一就是發(fā)郵件,這個初級項目的目的和內(nèi)容是:重要的電子郵件應(yīng)該被仔細閱讀和認真回復(fù),但日常工作的電子郵件應(yīng)該被自動處理!接下來我們將用Python實現(xiàn)自動發(fā)送電子郵件。
如何將這個任務(wù)自動化?我們只需要使用內(nèi)置模塊 smtplib 和 email,其中 smtplib 模塊用于實現(xiàn)簡單郵件傳輸協(xié)議(SMTP)發(fā)送電子郵件,email 模塊實現(xiàn)電子郵件的讀,寫,發(fā)送復(fù)雜 MIME 消息。
下面是使用 Gmail 自動發(fā)送電子郵件的分步教程:
l 如何開啟2步驗證以便能夠用Python使用Gmail;
l 如何使用 Python 發(fā)送普通電子郵件;
l 如何處理可能遇到的 SSL 錯誤;
挑戰(zhàn)任務(wù): 如果你想讓這個項目更具挑戰(zhàn)性,可以嘗試在電子郵件中用imghdr 庫添加圖片。
自動填寫 Web 表單(中級項目)
填寫表單是互聯(lián)網(wǎng)是最乏味的任務(wù)之一,一遍又一遍的填寫姓名,電話,地址和更多信息是最無聊的。更加糟糕的是,有時候你不得不用假數(shù)據(jù)來填寫調(diào)查表單。
在這里中級項目中,我們要用 Python 向網(wǎng)絡(luò)表格填寫假數(shù)據(jù),并且將該任務(wù)自動化,這會使用一個Web自動化庫,它允許我們執(zhí)行 Web 操作,例如訪問網(wǎng)站,輸入文本,點擊按鈕。
下面是關(guān)于如何用Python將這項繁瑣的任務(wù)自動化的分步教程。
- 如何在單個表單中填寫數(shù)據(jù);
- 如何使用 faker 庫生成假數(shù)據(jù);
- 如何填寫多個表單;
挑戰(zhàn)任務(wù):我們在本教程中填寫的表單僅有簡單元素。如果你想讓這個任務(wù)更具挑戰(zhàn)性,可以在表單中添加高級元素,例如下拉菜單和多項選擇題,然后嘗試將這個高級表單實現(xiàn)自動化填寫。
Tinder 自動化(高級項目)
在約會軟件上向右滑動非常耗時的,以至于找到匹配對象之后,就會忽略網(wǎng)戀最重要的部分——將網(wǎng)戀對象轉(zhuǎn)化為真正的約會對象!
這個高級項目包含一個機器人,它可以替你在軟件上右滑,這樣你就可以在搭訕臺詞上下功夫,提高你的轉(zhuǎn)換率。
是什么讓這個項目變得高級?有很多,僅羅列如下幾個:
- 登錄:無論你使用何種登錄方式(谷歌、Facebook),Tinder都會向你的手機號碼發(fā)送一個驗證碼,你需要使用這個驗證碼登錄Tinder,為了方便處理這個問題,你需要保持一個谷歌瀏覽器窗口處于活動狀態(tài),然后用Selenium控制它;
- 棘手的按鈕:如果你使用 .click方法來點擊喜歡的按鈕,有時會出現(xiàn)錯誤,對于這個特殊的網(wǎng)站,我們需要使用一種替代方法;
- 彈窗:右滑時,你可能會遇到不同的彈窗,你必須處理它們。
- 挑戰(zhàn)任務(wù):讓機器人向你的匹配對象發(fā)送隨機的搭訕信息,但這只是為了這個項目而做的!如果你想得到更多的回復(fù),不要使用自動發(fā)送信息,因為我試過了,它沒有自己發(fā)送高質(zhì)量信息有效。
在工作中實現(xiàn)任務(wù)自動化(超高級項目)
毫無疑問,將工作中的一項繁瑣任務(wù)自動化是你能做的最具挑戰(zhàn)性的事情,為什么呢?因為這種情況下大概是是沒有一個分步教程來指導(dǎo)你的,你必須自己思考使用什么Python庫,以及用哪種方法來實現(xiàn)任務(wù)自動化。
要了解將任務(wù)自動化的方法,請回答以下問題:
- 哪些任務(wù)是我一直在重復(fù)做的?
- 我可以用Python實現(xiàn)哪些部分的自動化?
- 我可以使用哪些Python庫來實現(xiàn)這個任務(wù)的自動化?
如果你能回答上述三個問題,那即使你找不到如何實現(xiàn)該任務(wù)自動化的特定教程,也可以通過查看某些代碼庫的文檔學(xué)習(xí)如何實現(xiàn)該任務(wù)的自動化。
譯者介紹
王德朕,51CTO社區(qū)編輯,10年互聯(lián)網(wǎng)產(chǎn)研經(jīng)驗,6年IT教培行業(yè)經(jīng)驗。
原文標(biāo)題:5 Python Projects to Automate Your Life: From Beginner to Advanced