Selenium原理、安裝與自動打卡實戰

Sonoop發表於2024-11-25

起因是最近再找無損音樂的資源,
但是需要積分才能下載,
雖然可以使用鈔能力,
但是每天能自動簽到的話就可以節省下來了嘛,
俗話說的好,騎腳踏車去酒吧,該省省該花花!
所以根據拾起了Python+Selenium,
今天先來個簡單的,Iamtxt書源下載站的自動簽到。
音樂些許複雜,涉及圖形滑塊驗證,
用cookie自動登入就可以繞過啦


1. 安裝與原理

一、原理

Selenium是一套Web網站程式自動化解決方案
Selenium客戶端庫 --> 瀏覽器驅動 --> 控制瀏覽器

  1. 自動化程式呼叫Selenium 客戶端庫函式(比如點選按鈕元素)
  2. 客戶端庫會傳送Selenium 命令 給瀏覽器的驅動程式
  3. 瀏覽器驅動程式接收到命令後 ,驅動瀏覽器去執行命令
  4. 瀏覽器執行命令
  5. 瀏覽器驅動程式獲取命令執行的結果,返回給我們自動化程式
  6. 自動化程式對返回結果進行處理

二、安裝

  1. 安裝客戶端庫
pip install Selenium
  1. 電腦下載瀏覽器驅動
    1. chrome瀏覽器
    2. edge瀏覽器
      放置路徑推薦: c:\tools\chromedriver.exe
  2. 測試安裝成功
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 建立 WebDrive 物件,指向edge驅動
wd = webdriver.Chrome(service=Service(r'C:\\tools\\chromedriver.exe'))
# 呼叫驅動使用 get 方法用瀏覽器開啟baidu
wd.get('https://www.baidu.com')

三、實戰:iamtxt自動打卡

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

# 除錯程式碼,執行結束瀏覽器不關閉
# options = webdriver.ChromeOptions()
# options.add_experimental_option('detach',True)

# 建立 WebDrive 物件,指向edge驅動
wd = webdriver.Chrome(service=Service(r'C:\\tools\\chromedriver.exe'),options=options)

# 開啟iamtxt,自動登入打卡
def iamtxt():
    wd.get('https://www.iamtxt.com/e/member/login/log.html')
    wd.find_element(By.ID,'username').send_keys('******')
    wd.find_element(By.ID,'password').send_keys('******')
    wd.find_element(By.NAME,'Submit').click()
    wd.implicitly_wait(10)
    wd.find_element(By.XPATH,'//*[@id="signin"]').click()
iamtxt()

相關文章