程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

太贊了! 菜鳥利用Python實現網站自動簽到

編輯:Python

前情提要

小五收藏了一些論壇網站,經常需要自己登錄簽到,以此來獲得積分金幣等等。

步驟倒是並不復雜,只需要填寫賬號密碼登錄,然後點擊簽到即可。

但天天手動太容易忘了這件事啦。畢竟我們都會用python了,那就可以使用Selenium操作;浏覽器實現自動簽到啊!

現在開始上手工作

准備工作

首先我們需要先安裝Selenium,從而實現後續自動化操控浏覽器。我們可以利用它來模擬鼠標按鍵,跟按鍵精靈很類似。

pip install selenium

待其安裝完成後,准備另一個必需工具。

selenium可以操控多款浏覽器,包括谷歌,火狐等,這裡小五使用的是谷歌浏覽器。

這裡需要知道浏覽器的版本信息,只需打開“關於Chrome”,就可以看到了。

如上圖所示,我的浏覽器版本是89.0.4389.114。然後我們需要前往(http://chromedriver.storage.googleapis.com/index.html)找到與浏覽器相匹配的版本,沒有一模一樣的選擇最近的版本也可以。

點擊進去選擇對應的系統版本,下載後將chromedriver.exe解壓出來,最後將其放到與python.exe文件相同的路徑下。

如果你是用的anaconda就放在下面目錄下

C:\Users\Administrator\anaconda3

具體位置如下圖所示

下面我們就可以正式用python自動簽到了。

代碼及講解

首先打開我要登錄的網站,具體域名就不分享給大家了。

先導入selenium庫,這裡只需使用selenium中的webdriver模塊,運行

from selenium import webdriver

打開下載的浏覽器驅動,設置隱式等待時

wd=webdriver.Chrome()
wd.implicitly_wait(1)

執行代碼的時候會自行去尋找chromedriver.exe(在python目錄下尋找)。如果我們前面沒有把它放在固定的路徑下,就需要在這裡指定chromedriver.exe路徑。

打開登錄網頁

wd.get('待登錄網站URL')

如上圖所示,模擬浏覽器已經打開了網站的登錄界面。這個時候我們需要定位到輸入框、密碼框以及登錄按鈕等。

這裡不用擔心,Selenium提供了很多種定位DOM元素的方法,各有各的特點和優勢。今天就主要使用 by_xpath() 這個方法來定位元素,這個方法比較靈活方便,大部分屬性都可以通過它來定位。

【檢查】→【進入開發者模式】點擊左上角的圖標,再點擊你要找的對象,即可得到該對象的信息。點位該對象後,右鍵copy它的XPath!

input = wd.find_element_by_xpath('//*[@id="email"]')
input.send_keys('[email protected]')

同理,我們可以定位到密碼框,再send_keys輸入密碼

password = wd.find_element_by_xpath('//*[@id="password"]')
password.send_keys('kxpython')

至於需要點擊的對象,可以使用click()來實現模擬點擊的功能。

點擊登錄

button_login = wd.find_element_by_xpath('//*[@id="app"]/section/div/div/div/div[2]/form/div/div[5]/button')
button_login.click()

點擊跳過彈窗

一般登錄後會有個小彈窗,關閉即可。

wd.find_element_by_xpath('//*[@id="popup-ann-modal"]/div/div/div[3]/button').click()

嘗試簽到

try:
    wd.find_element_by_xpath('//*[@id="checkin-div"]/a').click()
except:
    print("已簽到")

最後要記得關閉浏覽器窗口

wd.quit()

注:close()關閉當前窗口,wd.quit()則是關閉所有窗口。

點擊運行上面的全部代碼,即可實現python對網站的自動簽到。我們還可以將該python腳本設置為定時任務,這樣就不用每天手動去簽到啦!

小結

作為演示的這個網站非常簡單,如果大家也想用python來自動簽到的話,要根據自己的網站情況來改寫腳本。

其實 Selenium 更多的用法是自動化測試、爬蟲等,具體Selenium的詳細用法,可以參考文檔。

地址:http://selenium-python.readthedocs.org/

我們學習python時,可以嘗試用來解決自己的生活問題,這樣學得也更扎實,學得也更有趣味!

推薦閱讀:
入門: 最全的零基礎學Python的問題  | 零基礎學了8個月的Python  | 實戰項目 |學Python就是這條捷徑
干貨:爬取豆瓣短評,電影《後來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個海量小姐姐素描圖 |碟中諜這麼火,我用機器學習做個迷你推薦系統電影
趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!
AI: 會做詩的機器人 | 給圖片上色 | 預測收入 | 碟中諜這麼火,我用機器學習做個迷你推薦系統電影
小工具: Pdf轉Word,輕松搞定表格和水印! | 一鍵把html網頁保存為pdf!|  再見PDF提取收費! | 用90行代碼打造最強PDF轉換器,word、PPT、excel、markdown、html一鍵轉換 | 制作一款釘釘低價機票提示器! |60行代碼做了一個語音壁紙切換器天天看小姐姐!|

年度爆款文案

  • 1).臥槽!Pdf轉Word用Python輕松搞定!

  • 2).學Python真香!我用100行代碼做了個網站,幫人PS旅行圖片,賺個雞腿吃

  • 3).首播過億,火爆全網,我分析了《乘風破浪的姐姐》,發現了這些秘密 

  • 4).80行代碼!用Python做一個哆來A夢分身 

  • 5).你必須掌握的20個python代碼,短小精悍,用處無窮 

  • 6).30個Python奇淫技巧集 

  • 7).我總結的80頁《菜鳥學Python精選干貨.pdf》,都是干貨 

  • 8).再見Python!我要學Go了!2500字深度分析!

  • 9).發現一個舔狗福利!這個Python爬蟲神器太爽了,自動下載妹子圖片

點閱讀原文,看B站我的視頻!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved