发布时间:2026/7/17 5:44:56
Python Selenium校园网自动登录脚本实战:从零实现自动化 1. 项目概述与核心价值每次回到宿舍或实验室第一件事就是打开浏览器输入那串熟悉的校园网登录地址再手动敲入账号密码你是不是也觉得有点烦尤其是在需要频繁切换网络环境或者电脑重启后这个重复的登录动作就显得格外浪费时间。作为一个常年和代码打交道的开发者我一直在想能不能让电脑自己完成这个“仪式感”满满的操作答案是肯定的而且实现起来比你想象的要简单得多。今天要聊的就是用 Python 配合 Selenium 这个强大的浏览器自动化工具打造一个属于你自己的校园网自动登录脚本。这不仅仅是一个“偷懒”的小工具更是一个绝佳的 Python 自动化入门实战项目。它涵盖了网络请求分析、Web 元素定位、自动化操作、异常处理等多个核心技能点。无论你是刚学完 Python 基础语法想找个项目练手还是已经工作想解决实际效率问题这个项目都能给你带来实实在在的收获。接下来我会从思路拆解到代码实现再到你可能遇到的各种“坑”手把手带你走完整个流程并提供可以直接“抄作业”的完整代码。2. 核心思路与技术选型解析2.1 为什么是 Python Selenium实现自动登录听起来好像用requests库直接发个 POST 请求更简单快捷。确实如果登录接口是一个标准的、无复杂验证的 APIrequests是首选。但校园网登录页面往往“花样百出”可能有动态加载的 JavaScript、图片验证码、甚至是复杂的表单令牌Token。直接模拟 HTTP 请求可能需要逆向 JS 代码处理 Cookie 和 Session对新手来说门槛较高。Selenium 的思路则不同它的核心理念是“模拟真人操作浏览器”。你写代码告诉它“点击这里”、“在那个框里输入文字”、“然后按下登录按钮”。Selenium 就会驱动一个真实的浏览器如 Chrome、Firefox去执行这些操作。这样做的好处非常明显绕过前端复杂性无论登录页面的 JS 逻辑多复杂最终渲染给用户看的 HTML 元素是固定的。我们只需要找到账号、密码输入框和登录按钮这些元素即可无需关心背后的 JS 如何生成。处理各类验证对于一些简单的图片验证码非滑块、点选等复杂类型虽然 Selenium 不能直接识别但我们可以通过程序执行到验证码出现时暂停手动输入然后再继续自动化流程实现“半自动化”。对于更复杂的情况也有相应的应对策略。学习曲线平缓Selenium 的 API 非常直观find_element,click(),send_keys()这些方法顾名思义易于理解和上手特别适合自动化测试和初级爬虫/自动化场景。因此对于校园网登录这种强交互、页面逻辑可能多变的场景Python Selenium 的组合提供了高成功率和较低的实现难度是我们这个项目的理想技术选型。2.2 项目整体工作流程设计在动手写代码之前我们需要理清脚本的完整执行逻辑。一个健壮的自动登录脚本不应该只是简单的“打开页面-输入-点击”还必须考虑网络状态、页面加载、登录结果反馈等现实问题。我设计的核心流程如下环境检测与启动检查必要的驱动如 ChromeDriver是否存在并启动一个浏览器实例。这里我选择以“无头模式”运行即不显示浏览器图形界面减少资源占用更适合在后台静默执行。访问登录页面导航到校园网的登录地址。这里需要一个关键的等待策略必须确保页面完全加载、关键元素如输入框出现后再进行下一步操作否则代码会因找不到元素而报错。定位与填充信息在页面中找到用户名和密码的输入框将我们预设的账号密码填入。这一步的难点在于如何“找到”这些元素需要用到开发者工具。触发登录动作找到登录按钮并点击。有时按钮可能是一个input[type“submit”]有时是一个button有时甚至是一个div绑定了点击事件需要仔细辨别。登录结果判定点击登录后页面可能跳转。我们需要判断登录是否成功。常见的策略有检测页面标题或 URL 是否变为登录后的主页检测页面源码中是否包含“登录成功”或“欢迎”等关键字或者检测某个只有登录后才显示的元素如用户昵称是否存在。异常处理与日志记录网络可能断开、页面结构可能变化、账号密码可能错误。脚本必须能捕获这些异常并记录下发生了什么问题方便我们后续排查。这是区分“玩具脚本”和“实用工具”的关键。资源清理无论登录成功与否最后都要优雅地关闭浏览器驱动释放系统资源。这个流程构成了我们代码的骨架接下来我们进入具体的实现环节。3. 环境准备与核心工具详解3.1 Python 与 Selenium 库安装首先确保你的电脑上安装了 Python。建议使用 Python 3.7 及以上版本。打开命令行CMD 或 Terminal用 pip 安装 Selenium 库这是最基础的一步。pip install selenium如果下载速度慢可以使用国内镜像源例如清华源pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple3.2 浏览器驱动的选择与配置Selenium 需要对应的浏览器驱动才能工作。由于 Chrome 浏览器市场占有率最高且开发者工具强大我们以 Chrome 和 ChromeDriver 为例。查看 Chrome 版本打开 Chrome 浏览器在地址栏输入chrome://version/查看第一行“Google Chrome”后面的版本号例如120.0.6099.130。下载对应版本的 ChromeDriver访问 ChromeDriver 的官方下载站或国内镜像站。下载与你的 Chrome主版本号例如 120完全一致的驱动。如果找不到完全一致的可以下载版本号最接近的。根据你的操作系统Windows/macOS/Linux选择正确的文件。配置驱动路径这是新手最容易出错的地方。你有两种方式方式一推荐简单将下载的chromedriver.exe(Windows) 或chromedriver(macOS/Linux) 文件直接放在 Python 的安装目录下或 Scripts 目录下或者放在系统环境变量PATH包含的任意目录中。这样在代码里就可以直接用webdriver.Chrome()启动。方式二灵活将驱动文件放在某个固定路径如D:/tools/chromedriver.exe然后在代码中指定这个路径。注意务必保证 Chrome 浏览器和 ChromeDriver 的版本匹配版本不匹配是导致SessionNotCreatedException错误的最常见原因。如果遇到问题首先检查版本。3.3 开发工具选择任何能写 Python 代码的编辑器或 IDE 都可以比如 VS Code、PyCharm、甚至记事本。我个人推荐 VS Code 或 PyCharm它们对代码提示、调试的支持更好。确保你的编辑器中配置好了 Python 环境。4. 实战代码实现与逐行解析下面是我编写的一个增强版的校园网自动登录脚本包含了详细的注释和健壮性设计。你可以将其保存为一个.py文件例如auto_login.py。import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException, NoSuchElementException class CampusNetworkAutoLogin: 校园网自动登录类 封装了登录流程、异常处理和状态检查 def __init__(self, login_url, username, password, driver_pathNone): 初始化登录器 :param login_url: 校园网登录页面地址 :param username: 用户名/学号 :param password: 密码 :param driver_path: ChromeDriver路径如果已加入PATH则可为None self.login_url login_url self.username username self.password password self.driver_path driver_path self.driver None self.wait None # 显式等待对象 def setup_driver(self): 配置并启动浏览器 options webdriver.ChromeOptions() # 添加无头模式选项运行时不会弹出浏览器窗口 options.add_argument(--headless) # 禁用GPU加速在某些环境下可增加稳定性 options.add_argument(--disable-gpu) # 禁用沙箱模式解决部分Linux环境下的问题 options.add_argument(--no-sandbox) # 禁用DevShmUsage解决部分Docker或内存有限环境的问题 options.add_argument(--disable-dev-shm-usage) try: if self.driver_path: self.driver webdriver.Chrome(executable_pathself.driver_path, optionsoptions) else: self.driver webdriver.Chrome(optionsoptions) # 设置页面加载超时和脚本超时时间 self.driver.set_page_load_timeout(30) self.driver.set_script_timeout(30) # 初始化显式等待对象最多等待10秒 self.wait WebDriverWait(self.driver, 10) print([INFO] 浏览器驱动启动成功。) except Exception as e: print(f[ERROR] 启动浏览器驱动失败: {e}) raise def find_and_input(self, by, locator, text, description元素): 通用方法查找元素并输入文本 :param by: 定位方式如 By.ID, By.NAME, By.XPATH :param locator: 定位器字符串 :param text: 要输入的文本 :param description: 元素描述用于日志 try: element self.wait.until(EC.presence_of_element_located((by, locator))) element.clear() # 先清空可能存在的默认文本 element.send_keys(text) print(f[INFO] 已向‘{description}’输入文本。) except TimeoutException: print(f[ERROR] 等待‘{description}’超时未找到元素: {locator}) raise except Exception as e: print(f[ERROR] 操作‘{description}’时发生未知错误: {e}) raise def find_and_click(self, by, locator, description元素): 通用方法查找元素并点击 try: element self.wait.until(EC.element_to_be_clickable((by, locator))) element.click() print(f[INFO] 已点击‘{description}’。) except TimeoutException: print(f[ERROR] 等待可点击的‘{description}’超时: {locator}) raise def login(self): 执行登录主流程 print(f[INFO] 开始访问登录页面: {self.login_url}) try: self.driver.get(self.login_url) except TimeoutException: print([WARNING] 页面加载超时但可能已部分加载继续尝试...) except Exception as e: print(f[ERROR] 访问登录页面失败: {e}) return False # 关键步骤1定位并输入用户名 # 这里需要你根据自己学校的页面修改定位方式 # 示例1通过HTML元素的id属性定位 # self.find_and_input(By.ID, username, self.username, 用户名输入框) # 示例2通过name属性定位 # self.find_and_input(By.NAME, user, self.username, 用户名输入框) # 示例3通过XPath定位 (最灵活但可能随页面变化) # self.find_and_input(By.XPATH, //input[placeholder请输入学号], self.username, 用户名输入框) # 假设你的页面用户名输入框的id是 ‘username’ self.find_and_input(By.ID, username, self.username, 用户名输入框) # 关键步骤2定位并输入密码 # 同样需要修改 self.find_and_input(By.ID, password, self.password, 密码输入框) # 关键步骤3定位并点击登录按钮 # 按钮可能是input[type“submit”]、button、或者一个div # self.find_and_click(By.XPATH, //button[typesubmit], 登录按钮) self.find_and_click(By.ID, login-btn, 登录按钮) print([INFO] 登录指令已发送等待结果...) # 等待一段时间让登录操作完成和页面跳转 time.sleep(3) return self.check_login_success() def check_login_success(self): 检查登录是否成功 你需要根据登录成功后的页面特征来定义成功条件 try: # 方法1检查当前URL是否包含登录后的特征例如跳转到门户首页 # if “portal” in self.driver.current_url: # return True # 方法2检查页面标题 # if “个人中心” in self.driver.title: # return True # 方法3推荐检查页面中是否出现了只有登录后才显示的元素 # 例如登录后页面会出现“欢迎XXX”或“注销”链接 # 这里用XPath查找包含“退出”或“注销”文本的链接 logout_element self.driver.find_element(By.XPATH, //a[contains(text(), 退出) or contains(text(), 注销)]) if logout_element: print([SUCCESS] 登录成功检测到登出按钮。) return True except NoSuchElementException: # 没找到成功标志再检查是否有错误信息 try: error_msg_element self.driver.find_element(By.CLASS_NAME, error-msg) print(f[FAILURE] 登录失败页面提示: {error_msg_element.text}) except NoSuchElementException: # 既无成功标志也无明确错误信息 print([WARNING] 登录状态不明。可能页面结构已变化请手动检查。) return False except Exception as e: print(f[ERROR] 检查登录状态时发生错误: {e}) return False return False def run(self): 运行自动登录流程 try: self.setup_driver() success self.login() if success: print(*50) print(自动登录流程执行完毕登录成功) print(*50) else: print(*50) print(自动登录流程执行完毕但登录可能未成功请检查。) print(*50) # 登录成功后可以保持浏览器打开一段时间或者直接关闭 # 这里选择等待10秒后关闭方便你观察页面无头模式下看不到 time.sleep(10) except Exception as e: print(f[CRITICAL] 自动登录流程运行中出现未捕获的异常: {e}) finally: self.cleanup() def cleanup(self): 清理资源 if self.driver: self.driver.quit() print([INFO] 浏览器驱动已关闭。) # 这里是配置区需要你手动修改 if __name__ __main__: # 你的校园网登录地址 LOGIN_URL http://10.0.0.1 # 示例地址请替换为实际地址 # 你的账号密码重要请妥善保管不建议硬编码在代码中 USERNAME 你的学号 PASSWORD 你的密码 # ChromeDriver路径如果已加入系统PATH设为None即可 DRIVER_PATH None # 例如 r“D:\tools\chromedriver.exe” # 创建登录器实例并运行 login_bot CampusNetworkAutoLogin(LOGIN_URL, USERNAME, PASSWORD, DRIVER_PATH) login_bot.run()4.1 代码结构与关键点解析这段代码封装成了一个类CampusNetworkAutoLogin结构清晰易于维护和扩展。初始化与配置(__init__,setup_driver)将登录 URL、账号密码作为参数传入提高灵活性。在setup_driver中配置了 Chrome 选项。--headless是无头模式的核心参数让浏览器在后台运行。其他参数如--no-sandbox和--disable-dev-shm-usage是为了解决在 Linux 服务器或 Docker 容器中运行时的常见问题。使用了WebDriverWait结合expected_conditions进行“显式等待”这是 Selenium 自动化中至关重要的最佳实践。它比固定的time.sleep()更智能会在条件满足如元素出现、可点击后立即继续而不是傻等固定时间极大提高了脚本的稳定性和运行速度。核心交互方法(find_and_input,find_and_click)将查找元素和操作的逻辑封装起来并加入了详细的异常捕获和日志打印。这样主登录流程login()方法看起来非常简洁而且一旦定位方式需要修改只需改这一个地方。EC.presence_of_element_located等待元素出现在 DOM 中EC.element_to_be_clickable等待元素可点击这些都是更精确的等待条件。登录状态检查(check_login_success)这是判断脚本是否真正成功的关键。我提供了三种常见思路并推荐使用“查找登录后特有元素”的方法因为它最可靠。你需要根据自己学校登录成功后的页面找到一个只有登录后才出现的元素如“退出登录”链接、用户姓名显示区域等并修改对应的定位代码。同时也尝试捕获登录失败时的错误信息给用户更明确的反馈。资源管理在finally块中调用cleanup()方法确保无论登录过程是否出错浏览器驱动都会被正确关闭避免残留进程占用资源。5. 如何定位页面元素核心技能详解上面代码中留空最多的部分就是元素定位By.ID,By.NAME,By.XPATH。这是 Selenium 自动化中最核心也最需要手动适配的步骤。你必须亲自分析你所在学校的登录页面。操作步骤用 Chrome 浏览器手动打开校园网登录页面。按F12打开“开发者工具”。点击开发者工具左上角的箭头图标或按CtrlShiftC进入元素选择模式。将鼠标移动到“用户名输入框”上并点击开发者工具的“Elements”面板会自动定位到对应的 HTML 代码。分析这段代码寻找可用于定位的独特属性。定位策略优先级从高到低ID如果元素有id属性且值是唯一的如input id“username”这是最佳选择定位最快最准。使用By.ID, “username”。Name如果元素有name属性且唯一如input name“user”也是很好的选择。使用By.NAME, “user”。CSS Selector可以通过标签、类、属性等组合进行定位语法简洁浏览器原生支持速度快。例如By.CSS_SELECTOR, “input[type‘text’]”。XPath功能最强大的定位方式可以遍历 XML/HTML 文档的任何节点。当以上方法都失效时使用。例如By.XPATH, “//form[id‘loginForm’]//input[1]”。获取 XPath 的小技巧在开发者工具中右键点击选中的元素 - Copy - Copy XPath。但自动生成的 XPath 可能很冗长且脆弱建议稍作简化。实操心得不要完全依赖开发者工具“Copy XPath”直接生成的长路径如/html/body/div[3]/div[2]/form/div[1]/input。这种路径极度依赖页面结构页面稍作改动比如中间加了个div就会失效。应该寻找具有唯一性的id、name或者结合邻近元素的特征编写相对简洁的 XPath如//input[placeholder‘学号/工号’]。6. 进阶优化与功能扩展基础功能实现后我们可以让这个脚本变得更聪明、更实用。6.1 配置文件与敏感信息管理将账号密码硬编码在代码中是极不安全的也不利于分享。我们可以使用配置文件。方法一使用config.ini文件创建一个config.ini文件[NETWORK] login_url http://10.0.0.1 username your_student_id password your_password_here在 Python 代码中使用configparser模块读取。方法二推荐使用环境变量这是更安全、更符合部署实践的方式。# 在命令行中设置临时 export CAMPUS_USERNAME“your_id” export CAMPUS_PASSWORD“your_pw”# 在代码中读取 import os username os.environ.get(‘CAMPUS_USERNAME’) password os.environ.get(‘CAMPUS_PASSWORD’)6.2 定时任务与开机自启我们的目标是“全自动”即电脑一开机、一连网就自动登录。Windows 任务计划程序创建一个基本的.bat批处理文件内容如python D:\path\to\your\auto_login.py。打开“任务计划程序”创建新任务。在“触发器”选项卡新建触发器选择“登录时”或“工作站解锁时”。在“操作”选项卡添加操作“启动程序”选择刚才的.bat文件。在“条件”选项卡勾选“只有在以下网络连接可用时才启动”并选择你的无线或有线网络。这样只有连接校园网时才会触发脚本。macOS/Linux Crontab编辑 crontabcrontab -e添加一行例如在每次启动后等待2分钟执行并只在特定网络下运行需要更复杂的网络检测脚本reboot sleep 120 /usr/bin/python3 /path/to/your/auto_login.py6.3 网络连接检测与重试机制脚本不应该盲目执行最好先检测是否已经连接到校园网以及是否已经登录。import requests def is_internet_available(): 检测是否可访问外网判断是否已登录 try: # 尝试访问一个快速、稳定的网站 response requests.get(“http://connect.rom.miui.com/generate_204”, timeout5) # 204状态码表示无内容但连接成功。如果是校园网未登录通常会重定向到登录页或返回非204状态 return response.status_code 204 except requests.ConnectionError: return False def is_campus_network(): 检测当前是否连接到校园网IP段可选 # 可以尝试访问登录页如果能打开说明在校园网内 try: response requests.get(LOGIN_URL, timeout5) return True except: return False在主逻辑run()中可以先调用is_internet_available()如果返回True则跳过登录如果返回False再调用is_campus_network()确认在校园网内然后执行登录。登录后可以加入一个循环重试检查登录状态2-3次增加成功率。7. 常见问题与排查技巧实录即使代码写得再完善在实际运行中你仍可能遇到各种问题。下面是我在多次实践中总结的“排坑指南”。7.1 驱动与浏览器版本问题问题SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version...原因ChromeDriver 版本与已安装的 Chrome 浏览器版本不匹配。解决精确核对版本号。ChromeDriver 的版本必须与 Chrome 浏览器的主版本号如 120完全一致。升级/降级 Chrome 浏览器或下载对应版本的 ChromeDriver。使用webdriver-manager第三方库可以自动管理驱动版本但可能在某些网络环境下下载缓慢。pip install webdriver-managerfrom webdriver_manager.chrome import ChromeDriverManager from selenium import webdriver driver webdriver.Chrome(ChromeDriverManager().install())7.2 元素定位失败问题NoSuchElementException或TimeoutException。原因定位器写错了比如 ID 或 XPath 不对。页面尚未加载完成就尝试定位元素。元素在iframe框架内。元素是动态生成的需要更长的等待时间或等待特定条件。排查验证定位器在开发者工具的 Console 面板中用 JavaScript 验证你的定位器。对于 XPath输入$x(“你的xpath”)对于 CSS输入document.querySelector(“你的css”)。看是否能找到元素。增加等待时间将WebDriverWait的超时时间从 10 秒增加到 20 或 30 秒。检查 iframe如果元素在iframe里必须先使用driver.switch_to.frame(frame_reference)切换到该 iframe 内才能定位其中的元素。操作完后用driver.switch_to.default_content()切回来。使用更稳健的等待条件不要只用presence_of_element_located元素存在可以尝试visibility_of_element_located元素可见或element_to_be_clickable元素可点击这些条件更贴近真实交互。7.3 无头模式下的特殊问题问题在无头模式下运行失败但显示浏览器窗口时成功。原因有些网站在检测到无头浏览器特征时会返回不同的内容或阻止访问。解决添加更多 Chrome 选项来隐藏自动化特征但请注意这主要用于测试和学习不应用于绕过正式的反爬机制。options.add_argument(‘--headless’) options.add_argument(‘--disable-blink-featuresAutomationControlled’) options.add_experimental_option(“excludeSwitches”, [“enable-automation”]) options.add_experimental_option(‘useAutomationExtension’, False)如果问题依旧可以暂时移除--headless参数让浏览器显示出来观察页面加载和交互过程这往往是调试的最佳方式。7.4 登录后页面跳转或弹窗处理问题点击登录后没有跳转到预期页面或者弹出了一个提示框。解决处理弹窗如果是浏览器的alert/confirm/prompt弹窗使用driver.switch_to.alert来接受或驳回。try: alert driver.switch_to.alert print(alert.text) alert.accept() # 点击确定 # alert.dismiss() # 点击取消 except: pass # 没有弹窗处理新窗口/标签页如果登录后在新窗口打开需要切换句柄。main_window driver.current_window_handle # 点击登录后... all_windows driver.window_handles for window in all_windows: if window ! main_window: driver.switch_to.window(window) break # 在新窗口中进行操作7.5 脚本在后台持续运行与状态监控如果你将脚本部署到服务器或树莓派上可能需要它长时间运行并定时检查网络状态。方案将主逻辑包装在一个循环中并加入长时间休眠。import time CHECK_INTERVAL 300 # 每5分钟检查一次 while True: if not is_internet_available() and is_campus_network(): print(f“[{time.ctime()}] 网络不可用尝试自动登录...”) login_bot CampusNetworkAutoLogin(...) login_bot.run() else: print(f“[{time.ctime()}] 网络正常无需登录。”) time.sleep(CHECK_INTERVAL)可以使用nohup命令或将其注册为系统服务让脚本在后台持续运行。这个项目从一个小小的效率需求出发串联起了环境搭建、页面分析、自动化编程、异常处理和部署调度等多个环节。最让我有成就感的时刻不是第一次成功运行脚本而是在某个深夜回到实验室电脑自动连上网络的那一刻。它无声地工作解决了重复劳动的痛点。希望这份详细的指南和代码能帮你构建起自己的自动化工具更重要的是理解其背后的思路从而能够举一反三用技术去优化生活中更多类似的场景。如果在实现过程中遇到任何新的问题不妨回头看看“常见问题”部分或者尝试用“开发者工具”仔细分析页面你总能找到答案。

相关新闻

2026/7/17 5:44:56

MRTK配置文件定制:5步打造高效混合现实应用开发基础

1. 项目概述:为什么MRTK配置文件是混合现实开发的“大脑”如果你正在使用MixedRealityToolkit-Unity(MRTK)开发混合现实应用,那么你一定在某个时刻打开过那个看起来有点复杂的“Mixed Reality Toolkit”配置面板。这个面板&#x…

2026/7/17 5:44:56

VS Code 2025安装与汉化深度指南:避坑、权限、NLS机制全解析

1. 为什么2025年还在认真讲VS Code安装与汉化?这根本不是“过时操作”很多人看到“VS Code 安装教程”几个字,第一反应是:这玩意儿不就是点几下就完事?网上随便一搜一堆,2025年还专门写它,是不是太水了&…

2026/7/17 5:44:56

从零理解JavaScript游戏框架:核心原理、实现与选型指南

1. 项目概述:为什么我们需要一个“简单”的JavaScript游戏框架?如果你在搜索引擎里敲下“JavaScript 游戏框架”,大概率会看到一长串名字:Phaser、Three.js、Pixi.js、Babylon.js……它们功能强大,文档齐全&#xff0c…

2026/7/17 6:49:59

微前端开发跨越处理

微前端本地开发 Access to fetch at http://localhost:9527/ from origin http://localhost:8000 has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. If an opaque response serves your needs, set the request…

2026/7/17 6:49:59

FastAFD运行时优化:GB200平台AI推理解码吞吐量提升指南

在实际 AI 推理部署中,模型解码阶段的吞吐量往往是整个系统性能的关键瓶颈。尤其是在处理大语言模型(LLM)或混合专家模型(MoE)时,传统的解码运行时在 NVIDIA GB200 这类高性能计算平台上,仍可能…

2026/7/17 6:49:59

博途V19分享

https://pan.baidu.com/s/1hpsJNtM-qqlbkBe8zLZG1g?pwdyjk2 如有解压密码:QS*3wG^%yZK!

2026/7/17 6:49:59

章四 重拾技艺

其实小时候特别喜爱绘画,素描、油彩都喜欢。不过都没有专业地学习过,一是家境原因,二是确实我们更希望未来的工作是一份收入稳定的,可替代性低的行业(从经济角度艺术方向并不是回报周期短快的领域,但艺术不能简单用经济价值衡量)。总之绘画在大多数父母看来只能是个兴趣…

2026/7/17 6:49:59

ADS131A04的驱动代码(STM32 HAL库)

一、硬件接线这是本项目中ADS131A04的原理图,AIN1与AIN2为ADC芯片的模拟输入端,AVDD、AVSS等引脚就按照典型应用连接,本项目中M2接地、M1通过1k电阻接地、M0接到IOVDD(高电平),这三个引脚设置了SPI为异步中…

2026/7/17 6:44:59

AI与高德MCP打造智能旅行规划系统

1. 项目概述:AI与高德MCP的旅行规划革命去年帮朋友规划云南自驾游时,我花了整整三天时间查攻略、排路线、算时间,最后做出的行程表还是漏洞百出。这种痛苦经历促使我探索用技术解决旅行规划难题,直到发现高德MCP(Model…

2026/7/17 5:59:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/17 1:21:45

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/15 23:18:22

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/17 0:04:23

BiSheng JDK-build性能调优:构建速度提升30%的优化策略

BiSheng JDK-build性能调优:构建速度提升30%的优化策略 【免费下载链接】bishengjdk-build BiSheng JDK build and test scripts - common across all releases/versions 项目地址: https://gitcode.com/openeuler/bishengjdk-build 前往项目官网免费下载&am…

2026/7/16 13:58:36

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…