上海第二工业大学-自动签到爬虫 V1.5
前言
项目是基于 今天下午被班长打电话 被告知了《论早晨签到重要性与不签会被处分的可能性》后 仔细思索一番 。。。 然后发现比起依赖自己那和鲸鱼一样的记忆力。。不如还是直接依赖电脑算了。。。所以就写了这个爬虫。。。
自动签到爬虫步骤:
· 准备相关模块
· python脚本编写
· Python程序 EXE执行文件 包装
· Win10 系统下 按时间自动运行脚本代码
V1.5 更新
- 加入反游览器自动脚本检测
- 加入伪装IP地址(代理IP)
- 后台运行
准备:
- Python
- selenium模块
- chromedriver(对应你自己的谷歌游览器的版本,可以使用镜像网站下载)
脚本编写:
导入相关模块:
导入相关模块,建立模拟游览器,我用的是Chrome,也可以使用其他游览器:
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import selenium.webdriver
反爬技术:
<!-- 反自动脚本检测 -->
opt = Options()
opt.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = selenium.webdriver.Chrome(options=opt)
<!-- IP伪装 -->
opt.add_argument("--proxy-server=http://代理IP地址:端口")
后台自动运行:
opt.add_argument('--headless')
opt.add_argument('disbale-gpu')
打开校园网:
url = "https://hsm.sspu.edu.cn/"
driver.get(url)
time.sleep(2)
自动签到:
driver.find_element_by_id("username").send_keys("你的账号")
driver.find_element_by_id("password").send_keys("你的密码")
driver.find_element_by_class_name("submit_button").click()
time.sleep(1)
driver.find_element_by_class_name("icos").click()
driver.find_element_by_id("fineui_2-inputEl-icon").click()
driver.find_element_by_id("p1_TiWen-inputEl").send_keys("36")
driver.find_element_by_class_name("f-field-checkbox-switch").click()
time.sleep(2)
driver.find_element_by_class_name("f-btn-text").click()
自动退出游览器
time.sleep(3)
driver.quit()
Python程序 EXE 包装:
pip3 安装 pyinstaller
<!-- 使用cmd命令台 -->
pip3 install pyinstaller
pyinstaller 包装 python脚本
<!-- 使用cmd命令切换到当前路径下 -->
<!-- 然后执行指令(下面的xxxx写你自己程序的名字): -->
pyinstaller xxxx.py
<!-- 然后在该目录下./dist/xxxx/xxxx.exe出现exe文件 -->
Win10 系统下 按时间自动运行脚本代码:
- 打开 控制面板\系统和安全\管理工具\任务计划程序
- 创建基本任务(在右边那栏里头):名称描述你自己随便写
- 然后签到时间为 每天 (反正我们这边是每天都要签到的)
- 每日:开始时间 就是 开始时间
- 操作:启动程序
- 将程序与脚本 牵引至 之前你所包装的python exe执行文件上
- 点击完成
- 重复设立 多个执行任务 (防止某一次卡机 爬虫程序失败)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Panzer_Jack の 博客!
评论