Python實現(xiàn)自動簽到腳本的示例代碼
實訓課期間忙里偷閑的學習了python的selenium包,唯一一點不好是要自己去查英文文檔,明擺著欺負我這種英語不好的,想著用谷歌翻譯一下,代碼也給我翻譯了,不知道是幾個意思。
大二的時候就讓我們做自動簽到腳本,說用JS可以寫一下,但是說著說著就給忘了,現(xiàn)在學了python后又想起來要寫一個自動簽到的腳本,不得不佩服python的強大,短短二十行左右的代碼就實現(xiàn)了,雖然說腳本還需要手動操作去運行,以后還是可以慢慢優(yōu)化的。
開發(fā)環(huán)境 : Windows10 + sublime(編輯器裝好python環(huán)境)
selenium的開發(fā)文檔網(wǎng)址(英語好的可以直接看這個,寫的很詳細):http://selenium-python.readthedocs.io/
因為實現(xiàn)的時候使用的是谷歌瀏覽器,在運行腳本時需要下載一個chromedriver.exe,下載地址為(注意根據(jù)自己的谷歌瀏覽器的版本來下載):http://npm.taobao.org/mirrors/chromedriver/
可以在里面找到符合自己瀏覽器版本的chromedriver,我的谷歌版本為67.0.3396.99,下載的是 2.40/ 下的最新版,下載之后將解壓后的.exe文件放到PATH中,這里我直接將文件放入了我的python36文件下,這樣就不用配置PATH了。
首先在dos中輸入下面的命令,下載selenium包 :
pip install selenium
然后就可以開始寫具體的代碼了,首先導入webdriver與time,其中time用于延時,以保證網(wǎng)頁加載完成。
# 方便延時加載 import time from selenium import webdriver # 模擬瀏覽器打開網(wǎng)站 browser = webdriver.Chrome() browser.get('https://www.ctguqmx.com') # 將窗口最大化 browser.maximize_window() # 根據(jù)路徑找到按鈕,并模擬進行點擊 browser.find_element_by_xpath('/html/body/div[1]/div/div[4]/span/a[1]').click() # 延時2秒,以便網(wǎng)頁加載所有元素,避免之后找不到對應的元素 time.sleep(2) # 格式是PEP8自動轉(zhuǎn)的 # 這里是找到輸入框,發(fā)送要輸入的用戶名和密碼,模擬登陸 browser.find_element_by_xpath( "http://*[@id='aw-login-user-name']").send_keys("賬號") browser.find_element_by_xpath( "http://*[@id='aw-login-user-password']").send_keys("密碼") # 在輸入用戶名和密碼之后,點擊登陸按鈕 browser.find_element_by_xpath("http://*[@id='login_submit']").click() time.sleep(2) # 點擊登陸后的頁面中的簽到,跳轉(zhuǎn)到簽到頁面 browser.find_element_by_xpath("/html/body/div[1]/div/div[5]/a").click() time.sleep(2) # 點擊簽到,實現(xiàn)功能 browser.find_element_by_xpath("http://*[@id='qd_button']").click() time.sleep(2) # 這個print其實沒事什么用,如果真的要測試腳本是否運行成功,可以用try來拋出異常 print("簽到成功") # 腳本運行成功,退出瀏覽器 browser.quit()
以上實現(xiàn)了自動簽到的功能,不需要自己動手打開網(wǎng)頁了,直接運行腳本就可以實現(xiàn)簽到。
最后就是在寫腳本的時候遇到的小問題,昨天寫腳本的時候?qū)iT下了一個phantomjs,以前selenium還是支持的,使用phantomjs可以不需要瀏覽器就可以實現(xiàn)自動簽到,昨天寫的時候,上面報錯,說phantomjs被棄用了。
還有就是使用瀏覽器模擬登陸的時候總是報錯 : get() missing 1 required positional argument: 'url' ,然后下載chromedriver之后就好了。
在之前還嘗試過使用火狐瀏覽器去實現(xiàn)自動簽到,火狐也需要下載一個geckodriver.exe,下載之后也是要去編輯PATH,為了方便就直接把geckodriver.exe放在了python36的文件夾下,但是這個要求好像挺多的,我的火狐和geckodriver都是最新版,他還是會報錯,不讓打開火狐,后來我就選了chrome(還是谷歌大法好)。
到此這篇關(guān)于Python實現(xiàn)自動簽到腳本的示例代碼的文章就介紹到這了,更多相關(guān)Python 自動簽到內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用cx_Freeze庫生成msi格式安裝文件的方法
這篇文章主要介紹了Python使用cx_Freeze庫生成msi格式安裝文件的方法,結(jié)合實例形式分析了Python基于cx_Freeze庫生成msi格式安裝文件操作技巧與相關(guān)問題解決方法,需要的朋友可以參考下2018-07-07python3?cookbook解壓可迭代對象賦值給多個變量的問題及解決方案
這篇文章主要介紹了python3?cookbook-解壓可迭代對象賦值給多個變量,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01Python?內(nèi)置模塊?argparse快速入門教程
argparse模塊是Python內(nèi)置的用于命令項選項與參數(shù)解析的模塊,argparse模塊可以讓人輕松編寫用戶友好的命令行接口,能夠幫助程序員為模型定義參數(shù),這篇文章主要介紹了快速入門Python內(nèi)置模塊argparse,需要的朋友可以參考下2023-06-06pycharm執(zhí)行python時,填寫參數(shù)的方法
今天小編就為大家分享一篇pycharm執(zhí)行python時,填寫參數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Mac下Supervisor進程監(jiān)控管理工具的安裝與配置
這篇文章主要介紹了Mac下Supervisor進程監(jiān)控管理工具的安裝與配置,Supervisor 是由 Python 寫成,是一個類 unix 操作系統(tǒng)下的進程監(jiān)控管理工具,本文講解MAC系統(tǒng)下的配置與安裝,需要的朋友可以參考下2014-12-12