Python——自動簽到指令碼
Python——自動簽到指令碼
技術參考:點此跳轉
如果寫程式碼是為了幹壞事,那將動力無窮。
業務分析:
1. 打卡 selenium 實現
具體的可以看看 技術參考連結裡大佬的具體實現思路
def AutoSignIn(user_root,user_password):
root = user_root
password = user_password
url = 'http://my.hhu.edu.cn/login.portal'
chromedriver_path = "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe"
driver = webdriver.Chrome(chromedriver_path)
driver.get(url)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/div/input[1]').click()
sleep(5);
form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)
sleep(5);
driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/section/section/div/a/div[2]').click()
sleep(5);
driver.find_element_by_xpath('//*[@id="saveBtn"]').click()
sleep(5);
2. 郵件通知
def sendEmail(reciver):
# 發件方
from_addr = 'yours@qq.com'
password = 'yours' # 授權碼的獲取方式可以百度
# 收件方
to_addr = reciver
# 伺服器
smtp_server = 'smtp.qq.com'
#獲取時間
i = datetime.datetime.now()
#郵件內容
content = 'DedSec 已經幫你在' + str(i) + ',這個時間完成了你煩人的河海大學健康打卡!##請勿回覆##'
# 郵箱正文內容,第一個引數為內容,第二個引數為格式(plain 為純文字),第三個引數為編碼
msg = MIMEText(content, 'plain', 'utf-8')
# 郵件頭資訊
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header('DedSec')
# 開啟發信服務,這裡使用的是加密傳輸
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)
# 登入發信郵箱
server.login(from_addr, password)
# 傳送郵件
server.sendmail(from_addr, to_addr, msg.as_string())
# 關閉伺服器
server.quit()
3. 使用者型別
class user_info:
username = ''
password = ''
email = ''
def __init__(self,userName,passWord,Email):
self.username = userName
self.password = passWord
self.email = Email
4. 完整程式碼
from selenium import webdriver
from time import sleep
# smtplib 用於郵件的發信動作
import smtplib
# email 用於構建郵件內容
from email.mime.text import MIMEText
# 用於構建郵件頭
from email.header import Header
#日期與時間
import datetime
import time
class user_info:
username = ''
password = ''
email = ''
def __init__(self,userName,passWord,Email):
self.username = userName
self.password = passWord
self.email = Email
def AutoSignIn(user_root,user_password):
root = user_root
password = user_password
url = 'http://my.hhu.edu.cn/login.portal'
chromedriver_path = "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe"
driver = webdriver.Chrome(chromedriver_path)
driver.get(url)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/div/input[1]').click()
sleep(5);
form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)
sleep(5);
driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/section/section/div/a/div[2]').click()
sleep(5);
driver.find_element_by_xpath('//*[@id="saveBtn"]').click()
sleep(5);
def sendEmail(reciver):
# 發件方
from_addr = 'yours@qq.com'
password = 'yours'
# 收件方
to_addr = reciver
# 伺服器
smtp_server = 'smtp.qq.com'
#獲取時間
i = datetime.datetime.now()
#郵件內容
content = 'DedSec 已經幫你在' + str(i) + ',這個時間完成了你煩人的河海大學健康打卡!##請勿回覆##'
# 郵箱正文內容,第一個引數為內容,第二個引數為格式(plain 為純文字),第三個引數為編碼
msg = MIMEText(content, 'plain', 'utf-8')
# 郵件頭資訊
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header('DedSec')
# 開啟發信服務,這裡使用的是加密傳輸
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server, 465)
# 登入發信郵箱
server.login(from_addr, password)
# 傳送郵件
server.sendmail(from_addr, to_addr, msg.as_string())
# 關閉伺服器
server.quit()
if __name__ == '__main__':
#劉生偉
user = user_info('username','password','yours@qq.com')
userList = [user];
for i in range (len(userList)):
AutoSignIn(userList[i].username,userList[i].password)
sendEmail(userList[i].email)
print("打卡完畢,郵件傳送完畢")
sleep(5)
print("全部完畢")
因為適用性比較低,資料直接儲存在程式碼裡,如果可以接收大使用者量,可以考慮使用資料庫。
相關文章
- iOS自動打包指令碼+自動上傳到firiOS指令碼
- Android自動打包、簽名、優化、上傳ANT指令碼Android優化指令碼
- 開機自動執行python指令碼Python指令碼
- python實現自動搶課指令碼Python指令碼
- 自動ftp指令碼FTP指令碼
- 自動化瓦力多渠道打包python指令碼Python指令碼
- Python 轉義符以及指令碼自動生成Python指令碼
- Webpy 自動簽到系統 支援多使用者 多平臺簽到Web
- specjvm自動化指令碼JVM指令碼
- 自動備份指令碼指令碼
- docker指令碼自動化Docker指令碼
- LNMP自動部署指令碼LNMP指令碼
- awr自動收集指令碼指令碼
- 自動化RMAN指令碼指令碼
- Python 自動備份SVN版本庫並複製到遠端主機指令碼Python指令碼
- 利用Python實現自動掃雷小指令碼Python指令碼
- 用Python開發自動化測試指令碼Python指令碼
- 分享一個自動編譯,打包,簽名 android apk 的小指令碼編譯AndroidAPK指令碼
- Shell指令碼實現生成SSL自簽署證書指令碼
- Ubuntu自動啟動配置指令碼Ubuntu指令碼
- 網路卡自動啟動指令碼指令碼
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- 用python寫一個自動化盲註指令碼Python指令碼
- python+robotframework --第一個UI自動化指令碼PythonFrameworkUI指令碼
- Dockerfile---指令碼自動化Docker指令碼
- Linux自啟動指令碼Linux指令碼
- Ceph 自動reweight指令碼指令碼
- hadoop自動提交指令碼Hadoop指令碼
- MySQL自動備份指令碼MySql指令碼
- 自動生成Statspack的指令碼指令碼
- Linux管理指令碼之自動執行指令碼Linux指令碼
- centos 自動啟動指令碼和自啟動服務CentOS指令碼
- windows下oracle自動啟動指令碼WindowsOracle指令碼
- 使用指令碼重簽名指令碼
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- 使用CukeTest建立指令碼自動化備份檔案到網盤指令碼
- python股票自動 選股 與 止損 止盈 指令碼Python指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql