最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一次成功的想法實(shí)踐——自動(dòng)打卡

2022-01-20 03:09 作者:希望光落在你臉上  | 我要投稿

前言

針對(duì)寒暑假還需要每日打卡、上報(bào)體溫的苦逼大學(xué)生。因?yàn)槲疑蠈W(xué)期有一門(mén)大數(shù)據(jù)分析的課程,所以一周速成過(guò)python基礎(chǔ)和爬蟲(chóng),準(zhǔn)備爬取數(shù)據(jù)來(lái)完成課程大作業(yè)。到了寒假發(fā)現(xiàn)還需要每日打卡,這真的是很困難的一件事(絕對(duì)不是每天打打游戲就忘了)。所以就有了做這個(gè)的想法。

我覺(jué)得之前速成的python中selenium很適合完成這件自動(dòng)打卡的工作。于是,隨隨便便跟著之前的爬蟲(chóng)刪刪改改就做成了。腳本是做成了,但是用起來(lái)很不方便,每次使用還要打開(kāi)編輯器,點(diǎn)運(yùn)行。這操作不亞于我自己打一次了,而且不是自動(dòng)的。。。我要是記得手動(dòng)去運(yùn)行還需要腳本?這樣如何自動(dòng)化成了一個(gè)困難。首先掛在服務(wù)器上是不可能的。每次打卡會(huì)收集IP地址來(lái)驗(yàn)證打卡者的地理位置,這要是服務(wù)器運(yùn)行腳本,我這直接一次就成自爆卡車(chē)了。這必須在我自己的電腦上跑腳本才行。此時(shí),我腦中突然閃過(guò)一個(gè)關(guān)鍵詞:計(jì)劃任務(wù)。喔!windows是有這個(gè)功能的貌似,可以做一個(gè)定時(shí)計(jì)劃任務(wù)。這樣,我在打開(kāi)電腦打游戲的空閑時(shí)候,就能隨便打了卡。豈不美哉?

下面我就逐步介紹一下,我是怎么完成這個(gè)想法的。


第一步,環(huán)境搭建

首先,python的環(huán)境搭建,簡(jiǎn)單說(shuō)一下吧。去官網(wǎng)下載python(現(xiàn)在是3.10版本)安裝的時(shí)候記得打勾添加環(huán)境變量。然后就是vscode安裝python插件,傻瓜式不多說(shuō)了。

碼代碼之前,我們先把庫(kù)的問(wèn)題也解決了。一般來(lái)說(shuō)網(wǎng)絡(luò)好的情況,直接命令行打? pip install 庫(kù)名? 安裝即可。這里我們需要兩個(gè)庫(kù)所以只需要命令行分別打? pip install time? 和??pip install selenium? 就完事兒了。

但是有時(shí)候庫(kù)的安裝總是有問(wèn)題出現(xiàn),原因還總搞不清楚,很煩。這里可以用Anaconda來(lái)解決(一個(gè)大佬教我的)。?這玩意兒,相當(dāng)于一個(gè)獨(dú)立的運(yùn)行環(huán)境,里面初始就包含了100多個(gè)庫(kù),基本夠用。

安裝完selenium,想要驅(qū)動(dòng)瀏覽器來(lái)完成自動(dòng)化,還差一步就是弄一個(gè)驅(qū)動(dòng)器。比如chrome,則需要在python的安裝目錄下script文件夾里放置一個(gè)chromedriver的小東西。這玩意網(wǎng)上很容易找到(下載的時(shí)候注意對(duì)應(yīng)瀏覽器版本)。


第二步,代碼編寫(xiě)

代碼展示

代碼內(nèi)容很簡(jiǎn)單很簡(jiǎn)單,理解每一句的意思之后更簡(jiǎn)單了?,F(xiàn)在簡(jiǎn)單講解一下,

1-2行:引用庫(kù)time、selenium,time庫(kù)的作用就是增加睡眠時(shí)間sleep,selenium庫(kù)是用來(lái)完成自動(dòng)化的。

4行:使用chrome驅(qū)動(dòng)

6行:填網(wǎng)址,這樣可以自動(dòng)打卡相應(yīng)網(wǎng)站

7行:最大化網(wǎng)頁(yè)

9-10行:自動(dòng)填寫(xiě)賬號(hào)密碼,這里是根據(jù)網(wǎng)頁(yè)的源碼查找輸入框位置的。

driver.find_element_by_id(‘******’).send_keys('這里填賬號(hào)')

就是根據(jù)id查找元素,這里******則需要根據(jù)具體網(wǎng)頁(yè)來(lái)得知。'這里填賬號(hào)',這里填寫(xiě)賬號(hào),自動(dòng)化時(shí)就會(huì)自動(dòng)將此處的內(nèi)容輸入到該輸入框中

這里以百度為例,簡(jiǎn)單講一下。

輸入框定位

右擊輸入框——檢查。很容易就能得到輸入框?qū)?yīng)的代碼位置,然后id就很容易看出來(lái)了,上圖的id就是kw。

11行:就是模擬點(diǎn)擊,比如登錄、提交、確定。這里的表示輸入完賬號(hào)密碼后的登錄。這類(lèi)按鈕一般使用根據(jù)xpath來(lái)定位的方法。

driver.find_element_by_xpath('******').click()

xpatn怎么找呢?同樣,右擊確定鍵——檢查,找到對(duì)應(yīng)代碼,右擊這一行代碼——復(fù)制——復(fù)制xpath,這樣就得到了這個(gè)按鈕的xpath。

尋找xpath

12行:這里就是time的sleep應(yīng)用,表示休息1秒,防止網(wǎng)絡(luò)不行,還沒(méi)加載出就完成了下一步,也簡(jiǎn)單防一下腳本識(shí)別(操作太快還是容易被識(shí)別成腳本)。

13行:也是一個(gè)點(diǎn)擊,選擇打卡

15行:在輸入體溫的輸入框里填寫(xiě)36

17行:點(diǎn)擊提交

19行:退出瀏覽器

20行:提示任務(wù)完成


這里代碼是根據(jù)本人學(xué)校的打卡網(wǎng)頁(yè)寫(xiě)的,不同的網(wǎng)站是不一樣的,需要自己簡(jiǎn)單分析一下步驟。不過(guò)主要思路是一樣的。需要注意的一點(diǎn)是,登錄后如果是跳轉(zhuǎn),那么就可以這樣寫(xiě)代碼,如果是在新標(biāo)簽頁(yè)中打開(kāi)。那就需要另一種寫(xiě)法了(也就是??driver.switch_to? 跳轉(zhuǎn)到需要的標(biāo)簽頁(yè),用法網(wǎng)上一堆,不多說(shuō)了)。


第三步,程序打包

腳本程序?yàn)榱朔奖闶褂煤蛡鞑ソo別人使用,打包是非常需要的(這樣的話,對(duì)方可以直接使用運(yùn)行,無(wú)需搭建python環(huán)境)。又是需要安裝庫(kù)了??pip install pyinstaller? 。

庫(kù)安裝完成后,把剛寫(xiě)好的.py文件放到C:\Users\25348目錄下(25348就是計(jì)算機(jī)用戶名字),命令行??pyinstaller -F -w pytest.py? ,等待打包完成就行了(顯示的最后一行里有successfully就是成功了)。這里-F表示單文件打包;-w表示打包完成的exe運(yùn)行時(shí)不顯示命令行 。

打包完成后,去C:\Users\25348\dist目錄下就能找到已經(jīng)打包好的.exe文件了。雙擊就能直接運(yùn)行,而且還不需要環(huán)境,任何一臺(tái)電腦都能用,肥腸蠔蛹~


第四步,定時(shí)任務(wù)

現(xiàn)在離真正的自動(dòng)化就差最后一步了。直接用windows的計(jì)劃任務(wù)功能了。我稍微摸索了一下,現(xiàn)在介紹一下怎么用。

win + s 搜索 控制面板——系統(tǒng)和安全——管理工具下面的計(jì)劃任務(wù)——右側(cè)創(chuàng)建基本任務(wù)——填寫(xiě)名稱(chēng),下一步——觸發(fā)選擇每天,下一步——時(shí)間按需設(shè)置,下一步——操作選擇啟動(dòng)程序,下一步——目錄選擇好C:\Users\25348\dist下的程序,完成

這樣還需要最后加一些設(shè)置:在列表里找到自定義的任務(wù),右擊,屬性——設(shè)置選項(xiàng)卡——勾選“如果過(guò)了時(shí)間計(jì)劃開(kāi)始時(shí)間,立刻開(kāi)始任務(wù)”——確定

計(jì)劃任務(wù)設(shè)置

這樣,整個(gè)項(xiàng)目就完成了。如果過(guò)程沒(méi)有問(wèn)題的話,到點(diǎn)就會(huì)自動(dòng)打卡,如果過(guò)了時(shí)間點(diǎn),當(dāng)我打開(kāi)電腦的時(shí)候也會(huì)第一時(shí)間完成打卡。

蕪湖~撒花??????~

一次成功的想法實(shí)踐——自動(dòng)打卡的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宜宾县| 福鼎市| 广河县| 南川市| 泰安市| 金寨县| 昆明市| 清河县| 巫山县| 五常市| 佛冈县| 伊金霍洛旗| 天长市| 茂名市| 西乌珠穆沁旗| 上思县| 东丰县| 万州区| 英吉沙县| 满洲里市| 张家口市| 合肥市| 德安县| 襄樊市| 贞丰县| 徐闻县| 浦江县| 东乡县| 乐平市| 伊金霍洛旗| 甘肃省| 永寿县| 文山县| 定结县| 镇巴县| 大丰市| 清涧县| 来凤县| 博白县| 花莲市| 民丰县|