起因是最近再找無損音樂的資源,
但是需要積分才能下載,
雖然可以使用鈔能力,
但是每天能自動簽到的話就可以節省下來了嘛,
俗話說的好,騎腳踏車去酒吧,該省省該花花!
所以根據拾起了Python+Selenium,
今天先來個簡單的,Iamtxt書源下載站的自動簽到。
音樂些許複雜,涉及圖形滑塊驗證,
用cookie自動登入就可以繞過啦
1. 安裝與原理
一、原理
Selenium是一套Web網站程式自動化解決方案
Selenium客戶端庫 --> 瀏覽器驅動 --> 控制瀏覽器
- 自動化程式呼叫Selenium 客戶端庫函式(比如點選按鈕元素)
- 客戶端庫會傳送Selenium 命令 給瀏覽器的驅動程式
- 瀏覽器驅動程式接收到命令後 ,驅動瀏覽器去執行命令
- 瀏覽器執行命令
- 瀏覽器驅動程式獲取命令執行的結果,返回給我們自動化程式
- 自動化程式對返回結果進行處理
二、安裝
- 安裝客戶端庫
pip install Selenium
- 電腦下載瀏覽器驅動
- chrome瀏覽器
- edge瀏覽器
放置路徑推薦: c:\tools\chromedriver.exe
- 測試安裝成功
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()