當前位置:
首頁 > 新聞 > 自己動手打造工具系列之自動刷新簡歷

自己動手打造工具系列之自動刷新簡歷

0x00 背景


話說搞安全的大佬們都非常忙,自己在一步一步成長中無暇顧及其他瑣碎的事情,比如讓獵頭注意到各位大佬。如何讓獵頭和大廠注意到自己呢?第一、提高自己在整個行業的曝光度;第二、定時刷新自己的簡歷;還有第三,第四等等,各位發揮腦洞。針對第一點,很多大佬各有自己的辦法,但是針對第二點其實我們有全自動化的解決方案,可以為自己相對地節約點時間。小弟今天就帶來自己動手打造工具系列之自動刷新簡歷。本文主要是針對喜歡寫工具的童鞋提供一些思路,並一步一步地分析思路和方法,起一個拋磚引玉的作用吧。

(本文代碼部分可閱讀原文CV)

0x01 方法及步驟


原理


本工具主要是使用selenium來操作瀏覽器,實現元素定位、按鈕點擊和url請求,然後通過點擊成功後頁面信息的變化判斷和截圖判斷的方式來確定是否成功刷新簡歷。另外本文只操作了獵聘網和智聯招聘網站,因為自己用到這兩個網站比較多,很多好機會都是從這兩個網站獲得的。其他招聘網站還請各位自行研究。比如如何識別驗證碼等。


開發環境


開發語言:

Python 3.6.5 (也存在Java版的)


所用模塊:


selenium 3.11.0 (自動化測試模塊)


argparse

sys


time.sleep


系統環境:

MacOS Sierra


IDE:

 Pycharm


0x02 步驟解析


開始之前,需要下載相關的組件。主要包括各類瀏覽器的驅動(Webdriver),這樣我們才可以操作瀏覽器來完成自動刷新簡歷的工作。以下是主流瀏覽器的驅動下載地址:


Firefox: https://github.com/mozilla/geckodriver/releases/ (本文主要以操作Firefox為主來講解)


其他WebDriver下載地址:https://www.seleniumhq.org/download/

如果使用macOS, 直接使用brew install geckodriver 即可。


步驟一、創建Python虛擬環境


如果使用的是Pycharm的話,在選擇建立項目的時候可以選擇創建虛擬環境。同時,也可以自己建立虛擬環境。選擇其一即可。建立虛擬環境的方法請參考官方文檔。虛擬環境搭建好以後使用如下命令安裝模塊:

pip install selenium

等待安裝完成後,即可開始工具編寫之旅。


步驟二、導入模塊


本文主要使用以下模塊的方法:



Options主要是來已無GUI方式啟動瀏覽器,避免突然跳個瀏覽器出來嚇自己一跳。


步驟三、代碼編寫


首先定義一個類,所謂面向對象編程嘛。現在很火,耳熟能詳 ~ ~其次初始化參數和一些變數。代碼如下:


代碼初始化了用戶名和密碼,而且定義了需要進行自動刷新簡歷的網站。後面的方法中會用到這些參數和變數。有盆友會問,為什麼是m.liepin.com而不是www.leipin.com呢?後面會一一解釋。


然後我們需要操作兩個網站的簡歷自動刷新,那我們來定義兩個方法吧,我真的想稱之為函數。C/C++中毒太深!兩個方法我取了個拼音,好low有沒有!zhaopin() and liepin()。這個兩個方法的內容大同小異,因為每個網站的結構不一樣,所以造成了需要設定兩個方法。以zhaopin()這個方法來講解。



因為我們需要無GUI模式啟動瀏覽器,所以Options必不可少,在其中加入『headless』 參數後便可以悄無聲音地刷新簡歷,這樣老闆就不會看到我們在看其他機會啦。哈哈。在注釋里已經說得相對明白了。其實主要在於如何去定位元素,然後操作元素。Selenium提供了8種定位元素的方法,大家有興趣可以去官網看看。我們用得最多的還是.find_element_by_name、.find_element_by_tag_name 和 .find_element_by_class_selector。當然其他定位元素的方法只要能實現的都沒問題,看自己喜好。


我們使用瀏覽器打開zhaopin.com, 按下F12打開開發者工具, 隨後點擊最左邊的「選取一個元素按鈕」,然後移動到用戶名和密碼輸入框處便可以獲取name,Class等信息。如圖所示:



最後使用.find_element_by_name 和 .find_element_by_tag來定位操作元素,因為該頁面只有一個button標籤,所以就使用tag name即可定位:



其中sleep(3),主要是點擊後頁面可能還未載入。所以等待頁面載入完後再進行其他操作。然後我們進入登陸後的頁面去查找我們想要得到的自動刷新簡歷的功能。找到元素,右鍵「複製」->」CSS選擇器」即可複製位置。



而我們定義的t主要是來獲取文字變化後狀態,因為該網站簡歷刷新後文字會變成「刷新成功」。以此我們可以來判斷是否刷新成功。最後關閉driver,一定得關閉,不然Firefox可能還在後台運行。



最後,liepin.com的操作方式大同小異,主要是在於www.liepin.com有反爬策略。對新手來說太友好。所以我選擇了m.liepin.com來操作。不知道發了這篇文章後會不會加強m.liepin.com的反爬策略。哈哈!所以跟做安全一樣,此路不通的時候,可以另闢蹊徑。思路決定出路!代碼如下:



0x04 總結


對於Selenium這個包來說,有很多用途,比如掃描工具可以使用它來進行模糊測試。此文主要是稍微淺顯的說明下此模塊的基本用法。還是那句話思路決定出路,idea是最寶貴的東西。大家多想多寫,一定能成為安全界的大佬。


另外需要JAVA版的童鞋請私信我,謝謝!預告一下,下一次還有如何打造本地安全漏洞和安全工具的知識庫的文章哦!歡迎關注自己動手打造工具系列文章! 歡迎關注Github: https://github.com/Hell0W0rld0。謝謝各位!最後附上完整代碼:



*本文作者:ztencmcp,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

BlackHat 2018 | 將亮相的10款網路終端安全產品
關於地下比特幣ATM惡意軟體的調查

TAG:FreeBuf |