自动化签到脚本(习讯云) 您所在的位置:网站首页 签到狗京东签到不成功 自动化签到脚本(习讯云)

自动化签到脚本(习讯云)

2024-07-13 00:09| 来源: 网络整理| 查看: 265

习讯云自动签到脚本 前言正文selenium库的安装项目代码pyinstall库的安装subprocess库的安装schedule库的安装项目代码nssm安装进服务

前言

    由于技术的革新,人们的生活相较于上个世纪已经发生了天翻地覆的变化。例如我校已采用习讯云平台为实习学生提供实习管理、毕业就业数据跟踪分析和校企互动云平台,实现学校实习管理、毕业就业管理、校企合作流程化、智能化、精细化和数据化。个别民办院校要求365天实习打卡,才能算满实习任务。于是,就有了关于签到的自动化程序。感谢便民查询网(https://jingweidu.bmcx.com/)提供经纬度数据,也感谢大家的支持。

正文 selenium库的安装

    Selenium 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如打开网页,抓取数据等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些 JavaScript 动态渲染的页面来说,此种抓取方式非常有效

为什么要自动化:     很多网站数据是来自于接口,且对接口做了加密,我们可以使用selenium打开浏览器,访问网页让动态数据变成静态,从而绕过反爬虫手段。

一. 环境搭建     本节以 Chrome 为例来讲解 Selenium 的用法。在开始之前,请确保已经正确安装好了 Chrome 浏览器并配置好了 ChromeDriver。另外,还需要正确安装好 Python 的 Selenium 库

1.环境安装 谷歌下载(自行下载)

pip install selenium #库的安装

2.安装驱动 官网:chromedriver

注意: ~驱动要对应浏览器版本,否者会无法启动 ~禁止浏览器更新 打开cmd 输入services.msc 打开后台服务,把浏览器自动更新给禁止 ~原理:selenium根据驱动打开浏览器进行功能操作

二. 声明浏览器对象     Selenium 支持非常多的浏览器,如 Chrome、Firefox、Edge 等,还有 Android、BlackBerry 等手机端的浏览器。另外,也支持无界面浏览器 PhantomJS。

初始化

from selenium import webdriver browser = webdriver.Chrome() browser = webdriver.Firefox() browser = webdriver.Edge() browser = webdriver.PhantomJS() browser = webdriver.Safari()

    这样就完成了浏览器对象的初始化并将其赋值为 browser 对象。接下来,我们要做的就是调用 browser 对象,让其执行各个动作以模拟浏览器操作。

三. 基本使用 加载页面

from selenium import webdriver import time from selenium.webdriver.common.by import By # 打开指定(chrome)浏览器 browser = webdriver.Chrome() # 指定加载页面 browser.get("http://www.baidu.com/") # 通过name属性选择文本框元素,并设置内容 browser.find_element(By.NAME,'wd').send_keys("selenium") # 通过通过ID属性获取“百度一下”按钮,并执行点击操作 browser.find_element(By.ID,"su").click() # 提取页面 print(browser.page_source.encode('utf-8')) # 提取cookie print(browser.get_cookies()) # 提取当前请求地址 print(browser.current_url) # 设置五秒后执行下一步 time.sleep(5) # 关闭浏览器 browser.quit()

    运行代码后发现,会自动弹出一个 Chrome 浏览器。浏览器首先会跳转到百度,然后在搜索框中输入 Python,接着跳转到搜索结果页

项目代码 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import random from time import sleep sleep(random.randint(6,10)) #随机延时6-10秒 #打开登录的考勤系统,webdriver.Chrome() driver = webdriver.Chrome() #位置模拟 #经纬度查询https://jingweidu.bmcx.com/ Map_coordinates = dict({ "latitude": 31.87183671826284,#纬度 "longitude": 106.83947488095092,#经度 "accuracy": 100#精确度数 }) driver.execute_cdp_cmd("Emulation.setGeolocationOverride", Map_coordinates) driver.get("https://dingding.xixunyun.com/") sleep(3) school=['xxx职业大学'] username=['账号'] passwd=['密码'] #清空用户名框和密码框,同时从设置好的json获取用户名密码,登录,clear方法是清除当前窗口已有的输入数据 driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[1]/div/div/input').clear() #清空学校信息 driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[2]/div/input').clear() #清空学号信息 driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[3]/div/input').clear() #清空密码 # 登录 driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[1]/div/div/input').send_keys(school) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[1]/div/div/input').click() sleep(2) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[1]/div/div/input').send_keys(Keys.DOWN) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[1]/div/div/input').send_keys(Keys.ENTER) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[2]/div/input').send_keys(username) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[3]/div/input').send_keys(passwd) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[3]/button').click() sleep(2) driver.find_element(By.XPATH,'//*[@id="app"]/div/div/div[2]/button').click()#点签到 #在点一次 sleep(2) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[1]/div/div[3]/button[1]').click() sleep(2) driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div/div[5]/button').click()#提交 sleep(random.randint(6,10)) pyinstall库的安装

    在学习和工作之中,想制作一些小工具,用python秃了一个晚上,拿到公司,发现要安装python才能用,看别人的博客看不懂,别急,一篇搞定。

一、pyinstaller安装     pyinstaller 是一个python库,和其他库一样,可以用pip 进行导入。

pip install pyinstaller

    pyinstaller可以打包python程序变为exe,像其他程序一样,让其可以在任何windows下正常运行而无需python的解析。

pyinstaller xx.py #xx.py代表你需要打包的python文件 pyinstaller xx.spec #xx.spec代表生成的文件 再次打包即可生成exe文件 subprocess库的安装

Python运行exe文件     在Python编程语言中,可以通过subprocess模块来运行可执行文件(exe文件)。subprocess模块提供了一个强大的接口,可以方便地执行外部命令并与其进行交互。本文将介绍如何使用Python运行exe文件,并提供一些示例代码来帮助读者更好地理解。 subprocess模块概述     subprocess模块是Python标准库中的一部分,它提供了一个灵活的接口来创建和控制新进程,从而可以方便地执行外部命令。该模块允许我们调用系统命令、执行外部程序以及与其进行交互。通过subprocess模块,我们可以在Python中运行可执行文件,如exe文件。

运行exe文件的步骤     要在Python中运行exe文件,我们可以按照以下步骤进行操作:

    导入subprocess模块:首先,我们需要导入subprocess模块,以便在Python代码中使用其提供的函数和类。

import subprocess

1.创建Popen对象:使用subprocess.Popen函数创建一个Popen对象,该对象将用于运行exe文件。

process = subprocess.Popen('path_to_exe_file')

在上述代码中,path_to_exe_file是exe文件的路径,可以是绝对路径或相对路径。

等待exe文件完成运行:我们可以使用process.wait()方法等待exe文件运行完成。这将会阻塞当前进程,直到exe文件运行完毕。

process.wait()

获取exe文件的输出:如果exe文件产生了输出,我们可以使用process.communicate()方法获取输出结果。该方法将返回一个包含标准输出和标准错误输出的元组。

output, error = process.communicate()

在上述代码中,output变量用于存储标准输出,error变量用于存储标准错误输出。

schedule库的安装

    schedule是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间。如果想执行多个任务,也可以添加多个task。 首先安装schedule库:

pip install schedule

按时间间隔执行定时任务

import schedule from datetime import datetime def task(): now = datetime.now() ts = now.strftime("%Y-%m-%d %H:%M:%S") print(ts) def task2(): now = datetime.now() ts = now.strftime("%Y-%m-%d %H:%M:%S") print(ts + '666!') def func(): # 清空任务 schedule.clear() # 创建一个按3秒间隔执行任务 schedule.every(3).seconds.do(task) # 创建一个按2秒间隔执行任务 schedule.every(2).seconds.do(task2) while True: schedule.run_pending() func() 项目代码 import subprocess import schedule from datetime import datetime import time #执行exe def oponExe(): subprocess.Popen("D:\习讯云签到系统/xql.exe")#创建一个popen对象执行exe #执行日期 def data(): #打开文件,并获取文件对象 with open('data.txt','w',newline='') as file: # 获取当前日期 now = datetime.now() ts = now.strftime("%Y-%m-%d %H:%M:%S") # 将字符串写入到文件中 file.write(ts+'\n') file.close() schedule.every().day.at("10:30").do(oponExe) # 每天10:30 schedule.every().day.at("10:30").do(data) # 每天10:30 # schedule.every().minute.at(":17").do(oponExe) # 每分钟的第17秒 # schedule.every().minute.at(":17").do(data) # 每分钟的第17秒 while True: schedule.run_pending() time.sleep(1) nssm安装进服务

    NSSM 可以将 Windows 程序封装成服务,当服务终止时自动重启,进程记录到系统事件日志中,提供图形服务,删除功能,重定向输出,自定义环境变量和启动参数。 安装     建议下载最新版本,Win10 需要 nssm 2.24-101 及以上版本

    解压,配置环境变量 Path,如 C:\nssm-2.24-103-gdee49fc\win64;

   使用nssm工具将打包的exe封装成服务,即可自动运行。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有