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