久久久精品久久久久久96,91国高清在线,欧美日韩高清国产aⅴ一区,在线观看亚洲欧美一区二区三区

<sub id="e1sa3"></sub>

    <pre id="e1sa3"><del id="e1sa3"></del></pre>
    <noscript id="e1sa3"></noscript>

      新疆信息港歡迎您!

      新疆信息港
      新疆信息港 > 科技 >Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退!

      Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退!

      2020-11-20 12:25:13
      來(lái)源:互聯(lián)網(wǎng)
      閱讀:-

      開(kāi)始抓包配置過(guò)濾器打開(kāi)Fiddler 后,打開(kāi)模擬器,這時(shí)候在 Fiddler 會(huì)監(jiān)聽(tīng)到大量的流量信息,便于查找,我們需要使用過(guò)濾器,如圖,在 Fiddler 界面右側(cè),選擇 “Filters”并勾選,選擇 “Use Filters”,在 “Hosts” 項(xiàng)目中,選擇 “Show...

      我司使用的打卡軟件是 i 人事,不過(guò)我這記性,經(jīng)常漏了打卡簽退,定了鬧鐘都會(huì)忘,今天又被老大屌了。于是準(zhǔn)備抓一下簽到接口,利用 crontab 來(lái)實(shí)現(xiàn)自動(dòng)簽到簽退。

      環(huán)境配置

      這里使用的是 Fiddler 進(jìn)行抓包,F(xiàn)iddler 是一個(gè) HTTP 調(diào)試代理工具,以代理服務(wù)器的形式實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)流的監(jiān)聽(tīng)。之所以沒(méi)有用 Wireshark,一是因?yàn)槲也皇呛苁煜?wireshark 的篩選器,二是因?yàn)楸疚氖褂媚M器(手機(jī)應(yīng)用后臺(tái)流量多,不便于分析)來(lái)抓包,代理服務(wù)器方式更方便。

      安裝Fiddler

      先安裝 Fiddler( 官網(wǎng)地址 ),安裝完成之后需要安裝 fiddlercertmaker 證書(shū)生成工具( 官網(wǎng)地址 )

      Fiddler配置

      如圖,打開(kāi)Fiddler,Tools 選擇 Fiddler Options,將圖中所標(biāo)識(shí)地方勾選,配置后點(diǎn)擊 OK 保存并重啟 Fiddler

      Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退

      再次打開(kāi)該選項(xiàng)卡,點(diǎn)擊 Action 生成證書(shū)到桌面(文件名 FiddlerRoot.cer)

      Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退

      將該證書(shū)文件上傳到模擬器即可。

      模擬器配置

      記錄 Windows 當(dāng)前網(wǎng)卡的 IP 備用。

      打開(kāi)模擬器,在模擬器內(nèi)的系統(tǒng)設(shè)置中選擇 “安全”,選擇 “從 SD 卡安裝”,選擇前面上傳的證書(shū),安裝即可。(過(guò)程中會(huì)要求設(shè)置屏保密碼,設(shè)置即可)

      選擇模擬器內(nèi)的 WiFi 連接,長(zhǎng)按當(dāng)前的 WiFi,選擇修改網(wǎng)絡(luò),選擇手動(dòng)配置代理,地址填前面記錄的 Windows 本地 IP,端口為 8888,保存后重啟模擬器即可。

      Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退

      開(kāi)始抓包

      配置過(guò)濾器

      打開(kāi) Fiddler 后,打開(kāi)模擬器,這時(shí)候在 Fiddler 會(huì)監(jiān)聽(tīng)到大量的流量信息,便于查找,我們需要使用過(guò)濾器,如圖,在 Fiddler 界面右側(cè),選擇 “Filters”并勾選,選擇 “Use Filters”,在 “Hosts” 項(xiàng)目中,選擇 “Show only the following Hosts”,并填入 “www.ihr360.com” 這樣能過(guò)濾掉除 i 人事以外的域名流量信息,同時(shí),在 “Request Headers” 中,勾選 “Show only if URL contains”,填入 “gateway/attendance/aggregate/attendance/api/sign/doSign” ,點(diǎn)擊右上角的 Actions,選擇 “Run Filterset now” 以生效過(guò)濾器。在 Fiddler 左側(cè)的流量信息欄中,使用 Ctrl + X 清除當(dāng)前所有流量信息。

      Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退

      模擬器簽到

      將模擬器的模擬定位定位到需要打卡的位置,打開(kāi) i 人事,點(diǎn)擊考勤打卡,打卡簽到,這時(shí)候在 Fiddler 中會(huì)出現(xiàn)一條監(jiān)聽(tīng)到的請(qǐng)求,雙擊打開(kāi),如圖所示,

      Python實(shí)現(xiàn)人事自動(dòng)打卡!還怕忘記打卡被叼?自動(dòng)簽到與簽退

      可以看到,實(shí)際上打卡簽到動(dòng)作就是一條 POST 請(qǐng)求。我們了解了這條 POST 請(qǐng)求的基本內(nèi)容后就可以利用 Python 的 requests 模塊來(lái)模擬提交了。

      模擬請(qǐng)求

      模擬 POST 請(qǐng)求很簡(jiǎn)單,這里就不多說(shuō),直接貼代碼(很爛=.=! ,能用就行啦…勿噴…):

      #!/usr/bin/env python3# www.iots.vip# Alliot# 2020-1-8import requestsimport jsonimport smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrfrom time import strftime, localtime# 忽略 requests 請(qǐng)求認(rèn)證警告requests.packages.urllib3.disable_warnings()# 郵件設(shè)置server = 'smtp.163.com'port = '25'sender = '發(fā)件人郵箱'passwd = '密碼(授權(quán)碼)'receiver = '收件人'# i 人事簽到接口地址url = "https://www.ihr360.com/gateway/attendance/aggregate/attendance/api/sign/doSign"# 抓包簽到請(qǐng)求頭headersValue = {    'Cookie': 'SESSION=XXXXXXXXXXXXXX; Path=/; HttpOnly',    'accept': 'application/json;charset=UTF-8',    'appKey': 'com.irenshi.personneltreasure',    'appVersion': 'XXXX',    'osVersion': 'XXXX',    'udid': 'XXXXXX',    'user-agent': 'IRENSHI_APP_AGENT',    'os': 'Android',    'irenshilocale': 'zh_CN',    'Content-Type': 'application/json; charset=utf-8',    'Content-Length': '272',    'Host': 'www.ihr360.com',    'Connection': 'Keep-Alive',    'Accept-Encoding': 'gzip',}# 抓包請(qǐng)求 jsonjsonValue = {    "deviceToken": " ",    "deviceType": "NORMAL",    "latitude": XXX,    "locationName": "XXX",    "longitude": XXX,    "phoneName": "MI6",    "signSource": "APP",    "wifiMac": "XXX",    "wifiName": "Alliot",}# 簽到方法def doSign(url, jsonValue, headersValue):    r = requests.post(url, json=jsonValue, headers=headersValue, verify=False)    global results    results = json.loads(r.text)    print(strftime("%Y-%m-%d %H:%M:%S", localtime()))    return results# 郵件提醒方法def sendMail(server, port, sender, passwd, msg):    smtp = smtplib.SMTP()    smtp.connect(server, port)    smtp.login(sender, passwd)    smtp.sendmail(msg['From'], msg['To'], msg.as_string())    smtp.quit()    print('郵件發(fā)送成功email has send out !')def newMail(status):    msg = MIMEText(str(results), 'plain', 'utf-8')    msg['From'] = formataddr(["AlliotSigner", sender])    msg['To'] = formataddr(["Alliot", receiver])    if status == None:        msg['Subject'] = '打卡失敗-_-!'        print("打卡失敗")    else:        msg['Subject'] = '自動(dòng)打卡成功'        print("打卡成功")    sendMail(server, port, sender, passwd, msg)# 簽到并郵件通知結(jié)果,不用通知?jiǎng)t改為 doSign(url, jsonValue, headersValue) 即可newMail(doSign(url, jsonValue, headersValue)["data"])# doSign(url, jsonValue, headersValue)

      修改其中的配置為上文抓到的數(shù)據(jù)即可(這里注意, headersValue 請(qǐng)求頭為字典格式, jsonValue 則為 Json 格式,執(zhí)行報(bào)錯(cuò)的時(shí)候檢查一下是否是格式錯(cuò)誤。)、

      私信小編01 領(lǐng)取完整項(xiàng)目代碼!

      上傳到服務(wù)器中,執(zhí)行:

      python3 ihr.py # 你的文件名

      執(zhí)行后,打開(kāi) i 人事查看是否成功產(chǎn)生一次簽到記錄,成功即可添加進(jìn)計(jì)劃任務(wù)。

      定時(shí)執(zhí)行

      利用 crontab 來(lái)實(shí)現(xiàn)自動(dòng)執(zhí)行。關(guān)于 crontab 的具體使用,可見(jiàn) Linux下crontab的使用與注意事項(xiàng) | Alliot’s blog

      我是定義每周工作日的 8 點(diǎn) 18 點(diǎn)打卡,crontab 配置為:

      0 8,18 * * mon,tue,wed,thu,fri,sat /usr/bin/python3 /alliot/ihr.py>>/alliot/ihr_log.txt

      后記

      整個(gè)流程很簡(jiǎn)單粗暴,其實(shí)一般后臺(tái)都是能看出來(lái)的,因?yàn)槊看蔚暮灥轿恢枚际且粯樱匀绻胍普嬉稽c(diǎn),可以在請(qǐng)求中經(jīng)緯度、位置名里使用范圍的隨機(jī)數(shù)等等… 不過(guò),還是那句話: 可以,但沒(méi)必要。

      推薦閱讀:大股網(wǎng)

      免責(zé)聲明:本文僅代表企業(yè)觀點(diǎn),與新疆信息港無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
      熱門(mén)圖片
      熱門(mén)搜索