Python實(shí)現(xiàn)自動(dòng)簽到腳本功能
實(shí)訓(xùn)課期間忙里偷閑的學(xué)習(xí)了python的selenium包,唯一一點(diǎn)不好是要自己去查英文文檔,明擺著欺負(fù)我這種英語(yǔ)不好的,想著用谷歌翻譯一下,代碼也給我翻譯了,不知道是幾個(gè)意思。
大二的時(shí)候就讓我們做自動(dòng)簽到腳本,說(shuō)用JS可以寫一下,但是說(shuō)著說(shuō)著就給忘了,現(xiàn)在學(xué)了python后又想起來(lái)要寫一個(gè)自動(dòng)簽到的腳本,不得不佩服python的強(qiáng)大,短短二十行左右的代碼就實(shí)現(xiàn)了,雖然說(shuō)腳本還需要手動(dòng)操作去運(yùn)行,以后還是可以慢慢優(yōu)化的。
開發(fā)環(huán)境 : Windows10 + sublime(編輯器裝好python環(huán)境)
selenium的開發(fā)文檔網(wǎng)址(英語(yǔ)好的可以直接看這個(gè),寫的很詳細(xì)):http://selenium-python.readthedocs.io/
因?yàn)閷?shí)現(xiàn)的時(shí)候使用的是谷歌瀏覽器,在運(yùn)行腳本時(shí)需要下載一個(gè)chromedriver.exe,下載地址為(注意根據(jù)自己的谷歌瀏覽器的版本來(lái)下載):http://npm.taobao.org/mirrors/chromedriver/
可以在里面找到符合自己瀏覽器版本的chromedriver,我的谷歌版本為67.0.3396.99,下載的是 2.40/ 下的最新版,下載之后將解壓后的.exe文件放到PATH中,這里我直接將文件放入了我的python36文件下,這樣就不用配置PATH了。

首先在dos中輸入下面的命令,下載selenium包 :
pip install selenium
然后就可以開始寫具體的代碼了,首先導(dǎo)入webdriver與time,其中time用于延時(shí),以保證網(wǎng)頁(yè)加載完成。
# 方便延時(shí)加載
import time
from selenium import webdriver
# 模擬瀏覽器打開網(wǎng)站
browser = webdriver.Chrome()
browser.get('https://www.ctguqmx.com')
# 將窗口最大化
browser.maximize_window()
# 根據(jù)路徑找到按鈕,并模擬進(jìn)行點(diǎn)擊
browser.find_element_by_xpath('/html/body/div[1]/div/div[4]/span/a[1]').click()
# 延時(shí)2秒,以便網(wǎng)頁(yè)加載所有元素,避免之后找不到對(duì)應(yīng)的元素
time.sleep(2)
# 格式是PEP8自動(dòng)轉(zhuǎn)的
# 這里是找到輸入框,發(fā)送要輸入的用戶名和密碼,模擬登陸
browser.find_element_by_xpath(
"http://*[@id='aw-login-user-name']").send_keys("賬號(hào)")
browser.find_element_by_xpath(
"http://*[@id='aw-login-user-password']").send_keys("密碼")
# 在輸入用戶名和密碼之后,點(diǎn)擊登陸按鈕
browser.find_element_by_xpath("http://*[@id='login_submit']").click()
time.sleep(2)
# 點(diǎn)擊登陸后的頁(yè)面中的簽到,跳轉(zhuǎn)到簽到頁(yè)面
browser.find_element_by_xpath("/html/body/div[1]/div/div[5]/a").click()
time.sleep(2)
# 點(diǎn)擊簽到,實(shí)現(xiàn)功能
browser.find_element_by_xpath("http://*[@id='qd_button']").click()
time.sleep(2)
# 這個(gè)print其實(shí)沒事什么用,如果真的要測(cè)試腳本是否運(yùn)行成功,可以用try來(lái)拋出異常
print("簽到成功")
# 腳本運(yùn)行成功,退出瀏覽器
browser.quit()
以上實(shí)現(xiàn)了自動(dòng)簽到的功能,不需要自己動(dòng)手打開網(wǎng)頁(yè)了,直接運(yùn)行腳本就可以實(shí)現(xiàn)簽到。
最后就是在寫腳本的時(shí)候遇到的小問題,昨天寫腳本的時(shí)候?qū)iT下了一個(gè)phantomjs,以前selenium還是支持的,使用phantomjs可以不需要瀏覽器就可以實(shí)現(xiàn)自動(dòng)簽到,昨天寫的時(shí)候,上面報(bào)錯(cuò),說(shuō)phantomjs被棄用了。
還有就是使用瀏覽器模擬登陸的時(shí)候總是報(bào)錯(cuò) : get() missing 1 required positional argument: 'url' ,然后下載chromedriver之后就好了。
在之前還嘗試過(guò)使用火狐瀏覽器去實(shí)現(xiàn)自動(dòng)簽到,火狐也需要下載一個(gè)geckodriver.exe,下載之后也是要去編輯PATH,為了方便就直接把geckodriver.exe放在了python36的文件夾下,但是這個(gè)要求好像挺多的,我的火狐和geckodriver都是最新版,他還是會(huì)報(bào)錯(cuò),不讓打開火狐,后來(lái)我就選了chrome(還是谷歌大法好)。
總結(jié)
到此這篇關(guān)于Python實(shí)現(xiàn)自動(dòng)簽到腳本的文章就介紹到這了,更多相關(guān)Python自動(dòng)簽到腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實(shí)例
今天小編就為大家分享一篇python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python使用Matplotlib繪制散點(diǎn)趨勢(shì)線的代碼詳解
Matplotlib是一個(gè)用于數(shù)據(jù)可視化的強(qiáng)大Python庫(kù),其基本功能之一是創(chuàng)建帶有趨勢(shì)線的散點(diǎn)圖,散點(diǎn)圖對(duì)于可視化變量之間的關(guān)系非常有用,本文將指導(dǎo)您使用Matplotlib繪制散點(diǎn)趨勢(shì)線的過(guò)程,涵蓋線性和多項(xiàng)式趨勢(shì)線,需要的朋友可以參考下2025-01-01
PyCharm 2020.2下配置Anaconda環(huán)境的方法步驟
這篇文章主要介紹了PyCharm 2020.2下配置Anaconda環(huán)境的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python對(duì)Excel兩列數(shù)據(jù)進(jìn)行運(yùn)算的示例代碼
本文介紹了如何使用Python中的pandas庫(kù)對(duì)Excel表格中的兩列數(shù)據(jù)進(jìn)行運(yùn)算,并提供了詳細(xì)的代碼示例,感興趣的朋友跟隨小編一起看看吧2024-04-04
Python使用numpy模塊創(chuàng)建數(shù)組操作示例
這篇文章主要介紹了Python使用numpy模塊創(chuàng)建數(shù)組操作,結(jié)合實(shí)例形式分析了Python使用numpy模塊實(shí)現(xiàn)數(shù)組的創(chuàng)建、賦值、修改、打印等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程
這篇文章主要介紹了使用Python構(gòu)建Hopfield網(wǎng)絡(luò)的教程,本文來(lái)自于IBM官方網(wǎng)站的技術(shù)文檔,需要的朋友可以參考下2015-04-04

