效率提高——自动登录校园网(河海大学)与模拟点击与输入获取最新消息

news2024/10/12 15:37:02

文章目录

  • 零、前言
  • 一、自动登录校园网
    • 1.1 快速锁定小工具
    • 1.2 版本问题
    • 1.3 出现进程未结束的情况
    • 1.4 关于`chromedriver.exe`
    • 1.5 打包ico图片格式
  • 二、获取信息门户最新消息
  • 参考文章

零、前言

最近被校园网弄的也是比较烦心,而且准备远程弄弄这些玩具,为以后的远程的控制写写东西,也是按照哥哥的说法,用python写的东西,提高效率

一、自动登录校园网

这里我只是补充,对于一些小细节的注意事项进行记录

1.1 快速锁定小工具

在这里插入图片描述
这个是真好用,能一下锁定所需要关注的代码行,不需要去翻

1.2 版本问题

不知道什么情况,我的selenium死活都是3.14的版本,更新不上去,不能到4以上的版本,所以原本的
driver = webdriver.Chrome(service=service, options=chrome_options)
原本是需要Service函数,但是索性不需要了,直接按照老版本的来
driver = webdriver.Chrome(executable_path=r"D:\google\chromedriver.exe", options=chrome_options)
这个path是chromedriver.exe的绝对路径。

1.3 出现进程未结束的情况

出现白板,结束进程
嗯,我就把所以chrome的全结束了

process_name = "chrome.exe"
try:
    subprocess.check_call(["taskkill", "/F", "/IM", process_name])
    print(f"进程 {process_name} 已被结束。")
except subprocess.CalledProcessError as e:
    print(f"无法结束进程 {process_name}。错误代码:{e.returncode}")
except Exception as e:
    print(f"发生错误:{e}")

1.4 关于chromedriver.exe

关于这个,是必须要下载的
查看你爹chrome版本:chrome://version/
下载地址:https://googlechromelabs.github.io/chrome-for-testing/
在这里插入图片描述
可以直接把红框里面的数字,改成你的版本号,这样不用找了

1.5 打包ico图片格式

Pyinstaller -F -i awi6i-p5sbb-001.ico campus_internet.py
我用的是这个,网上找的png,jpg的图片想要设置成exe文件,必须转成ico文件

'''
Description: 河海大学校园网自动登录脚本
version: Windows版本 ubuntu版本
Author: ThreeStones1029 2320218115@qq.com
Date: 2024-01-08 17:13:25
LastEditors: ShuaiLei
LastEditTime: 2024-01-09 20:27:46

Description: 河海大学校园网自动登录脚本(改进)
version: Windows11版本 
Author: 周末不下雨 1946809464@qq.com
Date: 2024-10-11 11:36:25
LastEditors: 周末不下雨
LastEditTime: 2024-10-11 11:36:25
'''
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
import datetime
import subprocess
#################################################################
# 这个位置是你自己的下载放置的chromedriver.exe的路径
# 下载之前查看自己的谷歌浏览器版本,需要下载对应版本
# 查看方法:在谷歌浏览器地址栏输入:chrome://version/
# 下载路径https://googlechromelabs.github.io/chrome-for-testing/
#################################################################
print(datetime.datetime.now())


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--ignore-certificate-errors-spki-list')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--ignore-ssl-errors')
# 创建浏览器
driver = webdriver.Chrome(executable_path=r"D:\google\chromedriver.exe", options=chrome_options)
# 设置窗口大小
driver.set_window_size(1920, 1080)
username = "******" # 需要改动的地方,学号或者你的手机号
password = "******" # 需要改动的地方,你的密码
url = "http://10.96.0.155" # 河海大学校园网ip地址
driver.get(url)
try: # 判断当前的页面中是否是已经登录的界面,如果有找到tologout证明已经登录了
    driver.implicitly_wait(5)
    driver.find_element(By.XPATH, "//*[@id='toLogOut']")
    print("find tologout!")
except NoSuchElementException:
    print("开始连接学校网络……")
    # 下面的id信息可以在源码中找到,账户、密码
    driver.implicitly_wait(5)
    username_input = driver.find_element(By.XPATH, "//*[@id='username']")
    password_input = driver.find_element(By.XPATH, "//*[@id='pwd']")
    # 选择网络服务选项
    select_service = driver.find_element(By.XPATH, "//*[@id='selectDisname']")
    #  _service_0:校园网(Campus NET)
    #  _service_1:中国移动(CMCC NET)
    #  _service_2:中国电信-常州(CTCC NET-CZ)
    #  _service_3: 中国联通-常州(CUCC NET-CZ)
    services = driver.find_element(By.XPATH, "//*[@id='_service_1']")
    # 这个地方,有些学校可能不一样,有的就是loginLink,需要仔细查看
    login_button = driver.find_element(By.XPATH, "//*[@id='loginLink_div']")
    print("网页加载完毕")

    # # 传入相关参数,密码、账户、输入框需单击激活后才可输入↓,id名称上述方法同理
    username_input.send_keys(username)
    driver.find_element(By.XPATH, "//*[@id='pwd_tip']").click()
    password_input.send_keys(password)
    select_service.click()
    services.click()
    login_button.click()
    print("连接成功")
    # driver.close()
else:
    print("已登录")
process_name = "chrome.exe"
try:
    subprocess.check_call(["taskkill", "/F", "/IM", process_name])
    print(f"进程 {process_name} 已被结束。")
except subprocess.CalledProcessError as e:
    print(f"无法结束进程 {process_name}。错误代码:{e.returncode}")
except Exception as e:
    print(f"发生错误:{e}")

    # f = input("已登录,要退出吗?(Y/N)\n")
    # if f.lower() == "y":
    #     driver.find_element(By.XPATH, "//*[@id='toLogOut']").click()
    #     driver.find_element(By.XPATH, "//*[@id='sure']").click()
    #     print("已退出登录")
    #     # driver.close()
    # else:
    #     print("程序结束")
        # driver.close()

二、获取信息门户最新消息

嗯,这个我只想快点看到信息门户,顺便熟悉模拟点击和模拟输入,这里就不多解释了

import webbrowser
import pyautogui
import time
import pyperclip

# 你想要打开的网站URL
url = 'https://my.hhu.edu.cn/portal-web/guest/hhdx/index.html?t=1689577009603'

# 使用默认浏览器打开网站
webbrowser.open(url)

# 移动鼠标到屏幕上的指定位置
pyautogui.moveTo(1000, 550)
time.sleep(1)
pyautogui.click()

pyautogui.hotkey('ctrl', 'l')
pyautogui.hotkey('ctrl', 'c')

# 使用pyautogui来获取剪贴板中的链接
current_url = pyperclip.paste()
if "service" in current_url:
    time.sleep(1)
    pyautogui.moveTo(1200, 520)
    pyautogui.click()

    time.sleep(2)
    pyautogui.moveTo(1300, 620)
    pyautogui.click()
else:
    time.sleep(2)
    pyautogui.moveTo(1300, 620)
    pyautogui.click()


# time.sleep(1)
# pyautogui.moveTo(1200, 520)
# pyautogui.click()
#
# time.sleep(2)
# pyautogui.moveTo(1300, 620)
# pyautogui.click()






# 移动鼠标到屏幕上的指定位置,坐标为(100,100)
# pyautogui.moveTo(1200, 520)

# import pyautogui
# import time
#
# # 给一点时间来切换到正确的窗口或位置
# time.sleep(5)
#
# # 移动鼠标到屏幕上的指定位置,坐标为(100,100)
# pyautogui.moveTo(100, 100)
#
# # 在移动到的位置进行鼠标左键单击
# pyautogui.click()
#
# # 可以选择进行双击
# pyautogui.doubleClick()
#
# # 如果需要右键点击,可以指定button参数为'right'
# pyautogui.click(button='right')
#
# # 也可以拖动鼠标到另一个位置,例如(200,200)
# pyautogui.dragTo(200, 200, duration=1)
#
# # 移动到(0,0)位置,即屏幕的左上角
# pyautogui.moveTo(0, 0)
#
# # 执行双击操作
# pyautogui.doubleClick()

参考文章

  1. 自动连接校园网(河海大学)
  2. Python脚本打包成exe,看这一篇就够了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

150万条多语种音频数据!浙大清华发布语音伪造检测框架SafeEar,兼顾隐私保护,附代码和数据集

150万条多语种音频数据!浙大清华发布语音伪造检测框架SafeEar,兼顾隐私保护,附代码和数据集. SafeEar是一种内容隐私保护的语音伪造检测方法,其核心是设计基于神经音频编解码器的解耦模型,分离语音声学与语义信息&…

服务器数据恢复—硬盘坏扇区导致Linux系统服务器数据丢失的数据恢复案例

服务器数据恢复环境: 一台linux操作系统网站服务器,该服务器上部署了几十个网站,使用一块SATA硬盘。 服务器故障&原因: 服务器在工作过程中突然宕机。管理员尝试重新启动服务器失败,于是将服务器上的硬盘拆下检测…

PostgreSQL数据库安全管理,细节都在这里了

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…

要求信创检测的项目验收中,验收依据有哪些?

一、验收依据和分类 验收依据: 通常包括立项批复文件以及经批复的项目建议书、可行性研究报告、业务需求说明书;正式设计文件;项目招标文件和采购文件;签订的项目合同或协议;经批准的项目变更文件;有关法…

出海快报 | “三消+短剧”手游横空出世,黄油相机“出圈”日本市场,从Q1看日本手游市场趋势和机会

编者按:TopOn出海快报栏目为互联网出海从业者梳理出海热点,供大家了解行业最新发展态势。 1.“三消短剧”横空出世,融合创新手游表现亮眼 随着竞争的加剧,新产品想要突出重围,只能在游戏中加入额外的元素。第一次打开…

vue使用js-xlsx导入本地excle表格数据,回显在页面上

效果图 解释放在代码的注释中 页面代码&#xff0c;导入本地文件我用的是element的上传工具 // 我是根据js文件直接引入的 <script src"/js/xlsx.full.min.js"></script>// 导入excelreadWorkbookFromLocalFile(fileData) {// 文件信息const file f…

智能生成ppt软件哪个好?如何高效生成ppt?

想要快速制作出专业且吸引人的PPT演示文稿吗&#xff1f;ai智能生成ppt工具可以帮你实现这一目标。 无需复杂的设计技巧&#xff0c;也不必花费大量时间&#xff0c;只需几个简单的步骤&#xff0c;就能创造出令人印象深刻的演示文稿。下面是一份免费版教程&#xff0c;让你轻…

中航资本:股票低佣开户注意事项,怎么低佣金开户?

股票生意中会涉及到一些手续费&#xff0c;佣金费、印花税、过户费等&#xff0c;印花税、过户费的费率是承认的&#xff0c;而不同证券公司、生意途径的佣金费率都有或许不同。 低佣金开户办法&#xff1a; 1、线上券商途径开户&#xff1a;许多大型证券公司&#xff0c;例如…

在HF上部署你的专属MindSearch,随时随地开启智能搜索!

作者&#xff1a;MindSearch 兴趣小组成员张富才 本文将详细带领大家学习如何在 Hugging Face Space 部署****并美化专属自己的 MindSearch 应用&#xff0c;免去排队等待的烦恼&#xff0c;随时随地开启智能搜索&#xff01; 在深入开始之前&#xff0c;我们需要了解&#x…

深入理解 C/C++ 指针

深入理解 C 指针&#xff1a;指针、解引用与指针变量的详细解析 前言 在 C 编程语言中&#xff0c;指针 是一个非常强大且重要的概念。对于初学者来说&#xff0c;指针往往会让人感到困惑不解。本文将通过形象的比喻&#xff0c;帮助大家深入理解指针、解引用与指针变量的概念…

安装openai-whisper 失败

昨晚安装python 语音识别模型经常失败&#xff1a; pip install openai-whisper 具体原因是因为国外的源使网络不稳定造成断网 查阅资料我自己的解决办法是在自己C:\Users\用户名目录下建一个pip文件夹&#xff0c;在pip文件夹下建一个pip.ini文件 在pip.ini文件中加入自己要…

MYSQL 多表拼接link

&#x1f3c6;本文收录于《全栈Bug调优(实战版)》专栏&#xff0c;主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&am…

mysql复制表结构和数据

1.实例 #复制一张和test 一摸一样的表结构 CREATE TABLE test_one like test#往复制的表结构中复制数据 INSERT INTO test_one SELECT * FROM test#两者一起使用相当于 cv大法2.总结 完全实现了表结构和数据的复制&#xff0c;但是两条sql 得分两步执行 2.1 复制表结构 #复制…

AI开源项目

开源AI知识库 FastGPT FastGPT是一个基于LLM&#xff08;大型语言模型&#xff09;的知识库问答系统项目&#xff0c;以下是对FastGPT项目的详细解释&#xff1a; 一、项目背景与团队 FastGPT由FastAI团队开发&#xff0c;该团队包含多位在机器学习和自然语言处理领域具有丰富…

大数据应用方案1-Postgresql集群

1 说明&#xff1a; 在做任何系统之前&#xff0c;选择哪种数据底座做支持很重要&#xff0c;是一栋大厦地基牢不牢固的根本问题&#xff0c;这里用Postgresql基于docker实现了分布式的集群实践&#xff0c;分享之。 2. 基于docker的集群实践 2.1 方案设计 - 两个已安装了d…

ICLR 2024 Spotlight|SEAL:面向真实场景超分辨率的系统性评估框架

研究背景 现实世界图像超分辨率&#xff08;Real-World Super-Resolution, Real-SR&#xff09;技术&#xff0c;作为提升图像清晰度的关键技术&#xff0c;正变得越来越重要。然而&#xff0c;如何准确评估Real-SR方法的性能&#xff0c;一直是该领域的一大挑战。目前的评估…

mig IP核的学习

mig全称是Memory Interface Generator。 参考自视频&#xff1a;MIG IP配置_哔哩哔哩_bilibili DDR基础知识 时钟类型 使用流程 选择DDR3 16是地址线的位宽 能在DDR3的型号MT41K256M16XX-125中看出来。 怎么选择clock period 靠的是 芯片型号中的 -125,然后算出 800MHZ,…

【市场解读】中国智能电车发展趋势

参考文献&#xff1a;汽车之家-《2024中国智能电动车发展趋势洞察报告》 市场趋势 汽车消费 新能源渗透率持续走高&#xff0c;在2024上半年已达到42%&#xff0c;有望在2025冲刺60%。用户对新能源车的关注度也持续增长。 新能源车新品投放加速&#xff0c;其中混动新品投…

QT 10.11

作业&#xff1a;将数据库和图像处理自己实现一遍 数据库操作 源文件 #include "widget.h" #include "ui_widget.h" #include<QMessageBox> #include<QDebug> #include <QTableWidget> Widget::Widget(QWidget *parent) : QWidget(pare…

如何在 idea 中移动类

今天在项目中出现了一个问题&#xff0c;大哥告诉我说&#xff0c;我的类放错包了&#xff0c;但是此时这个类我已经写得差不多了&#xff0c;有很多其他类中都用的是当前包的路径&#xff0c;那么该如何简单的将类移动位置呢&#xff1f; 1.右击你要移动的类&#xff0c;依次…