Python爬蟲(chóng)簡(jiǎn)單應(yīng)用

針對(duì)公司考勤管理系統(tǒng)實(shí)現(xiàn)的自動(dòng)簽到腳本,實(shí)現(xiàn)很簡(jiǎn)陋,將就著用吧。至少請(qǐng)假再也不用調(diào)休了:)

為什么選擇python

極簡(jiǎn)主義,簡(jiǎn)單就是最好的。

開(kāi)發(fā)環(huán)境搭建
  • 安裝python,在官網(wǎng)下載對(duì)應(yīng)版本(https://www.python.org/)
    這里選擇python2.7版本,也可以是python3.5
  • 安裝requests模塊
    目前最新版本的python都集成了pip工具,用pip工具安裝非常方便。進(jìn)入python安裝目錄下的scripts目錄,pip工具在此目錄下,運(yùn)行命令行執(zhí)行
pip install requests

當(dāng)然也可以使用python原生工具集urllib,urllib2。同樣是處理http請(qǐng)求,只是requests更好用一些。

具體實(shí)現(xiàn)

工具目的主要是充當(dāng)http客戶端,模擬登錄簽到和簽出流程

  • 登錄
    利用requests模塊的post方法,在此之前我們需要分析考勤網(wǎng)站登錄網(wǎng)頁(yè)的html,抽取需要的參數(shù)數(shù)據(jù),具體方法如下:
    1.在google瀏覽器打開(kāi)考勤系統(tǒng)網(wǎng)址,按F12并刷新網(wǎng)頁(yè),選擇network,在name列表框選擇第一項(xiàng)的url,右邊點(diǎn)擊headers子選項(xiàng)。Request以及Reponse信息都可以查看到


    login.png

    2.我們所需要的是Request Headers以及Form Data字段信息,簡(jiǎn)單粗暴全部照著拷貝了。
    post方法代碼如下:

def postLogin(session):
    headers={
        'Host':host,
        'Origin':origin,
        'Referer':referer,
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
    }
    formData={}
    formData['username'] = username
    formData['password'] = password
    session.post(loginUrl, data=formData,headers=headers,)
  • 簽到和簽出
    這里所謂的簽到和簽出也都是調(diào)用post方法發(fā)送Http請(qǐng)求,重點(diǎn)在于對(duì)目標(biāo)網(wǎng)址的報(bào)文解析,具體參考登錄過(guò)程中的google瀏覽器debug方法。簽到與簽出唯一不一樣的就是請(qǐng)求的url地址不同。
def postSave(session, url):
      return session.post(url)
checkin_resp = postSave(s, url)
print checkin_resp
checkout_resp = postSave(s, url)
print checkout_resp

這里防止多次簽到和簽出是通過(guò)時(shí)間來(lái)區(qū)分的

工具打包和使用
  • 利用PyInstaller簡(jiǎn)單的編譯exe
    安裝PyInstaller:
pip install pyinstaller

國(guó)內(nèi)網(wǎng)絡(luò)比較慢,因?yàn)檫@種方式最直接簡(jiǎn)單。如果安裝過(guò)程中報(bào)錯(cuò),就是網(wǎng)絡(luò)斷連,重新執(zhí)行命令。
打包命令也很簡(jiǎn)單:

pyinstaller -F D:/workspace/python/om/om.py
  • 工具的使用
    在windows系統(tǒng)下利用任務(wù)計(jì)劃程序設(shè)置定時(shí)任務(wù),工具需要傳遞兩個(gè)參數(shù),用戶名和密碼。按照簽到簽出的時(shí)間設(shè)置兩個(gè)任務(wù),每天定時(shí)執(zhí)行,具體設(shè)置定時(shí)任務(wù)的方法不在這里說(shuō)明,具體操作步驟參照百度說(shuō)明。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容