当前位置: 首页 > news >正文

网站如何加入广告联盟wordpress上传图片权限

网站如何加入广告联盟,wordpress上传图片权限,wordpress小工具音乐,做网站找哪家好熊掌号✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨ 这里有: 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!趣味开发日常:代码背后的脑洞故事、工具…

✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨

这里有:

 

  • 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!
  • 趣味开发日常:代码背后的脑洞故事、工具测评,让技术圈不再枯燥~
  • 独家资源分享:开源项目、学习资料包,助你打怪升级快人一步!

👉 点击直达→ 盹猫猫的个人小站 👈
🌟 来逛逛吧,说不定能挖到你正在找的技术宝藏哦~

目录

一、整体功能概述

二、核心技术栈

三、功能模块解析

1. GUI 构建

2. 验证码获取与展示

3. 登录逻辑

4. 自动刷时长逻辑

5. UI 状态机

四、实现效果

五、总结


欢迎来到 盹猫(>^ω^<)的博客

本篇文章主要介绍了

[使用 Tkinter + Requests 实现地理信息安全系统学习时长助手]
❤博主广交技术好友,喜欢文章的可以关注一下❤

        在在线学习系统中,学习时长往往是课程考核的关键指标。但手动挂机学习效率低,且需要不断点击页面保持在线。本文将介绍如何利用 Python 的 Tkinter GUI 库Requests 网络请求库,编写一个自动化的“学习时长助手”,实现自动登录、验证码识别与刷新,以及后台定时提交学习时长。

注:该程序用于网站(https://gistraining.webmap.cn/)的自动增加学习时长.

一、整体功能概述

本文的完整程序实现了以下功能:

  1. 图形化界面:基于 Tkinter 构建,用户可通过界面输入用户名、密码、验证码。

  2. 验证码获取与刷新:支持从服务器获取验证码图片,展示在 GUI 中。

  3. 自动登录:支持输入账户信息后自动登录,并校验返回结果。

  4. 时长刷课:后台线程定时向服务器提交学习时长请求。

  5. 进度显示:通过进度条和标签展示当前已刷学习时长与目标时长。

  6. 状态管理:应用有完善的状态机机制,保证不同阶段界面控件可用性合理切换。

最终效果是:用户登录成功后,点击“开始刷时长”,程序将自动向服务器提交学习时长请求,并动态更新 UI。


二、核心技术栈

  • Tkinter:Python 标准库中的 GUI 工具包,适合快速开发桌面工具。

  • Requests:Python 最常用的 HTTP 请求库,用于和学习平台进行交互。

  • Pillow (PIL):用于处理验证码图片,方便在 Tkinter 中显示。

  • 多线程 + 队列:利用 threading.Threadqueue.Queue 实现异步网络请求,避免阻塞 GUI。

  • 状态机模式:通过 set_ui_state 方法集中管理控件状态,逻辑清晰。


三、功能模块解析

1. GUI 构建

主界面由 三个主要区域组成:

  • 登录区:输入用户名、密码、验证码,并支持刷新验证码。

  • 控制区:设置请求间隔,开始或停止“刷时长”。

  • 进度区:显示已学习的时长和进度条。

示例代码:

login_frame = ttk.LabelFrame(main_frame, text="登录", padding="10")
self.username_entry = ttk.Entry(login_frame)
self.password_entry = ttk.Entry(login_frame)
self.captcha_entry = ttk.Entry(login_frame)
self.captcha_image_label = ttk.Label(login_frame)

这里我们利用 ttk.LabelFrame 分组,条理清晰,用户操作直观。


2. 验证码获取与展示

验证码获取逻辑通过单独的线程运行,避免阻塞 GUI:

def _fetch_captcha_worker(self):response = self.session.get(self.URL_CAPTCHA, timeout=10)if response.status_code == 200:self.queue.put({"type": "captcha_image", "data": response.content})

取回图片后,通过 Pillow 转换为 ImageTk.PhotoImage 并展示:

image = Image.open(BytesIO(image_data))
self.captcha_photo = ImageTk.PhotoImage(image)
self.captcha_image_label.config(image=self.captcha_photo)

这样用户无需刷新页面,即可获取最新验证码。


3. 登录逻辑

程序将密码进行 Base64 编码,并提交到服务器:

encoded_password = base64.b64encode(password.encode('utf-8')).decode('utf-8')
data = {'args[username]': username,'args[userpassword]': encoded_password,'args[randcode]': captcha,'userlogin': '1','userhash': str(time.time())
}
response = self.session.post(self.URL_LOGIN, data=data, timeout=10)

这里特别注意:

  • 使用 requests.Session() 保持会话,避免重复登录。

  • 登录结果通过 消息队列传递给主线程,保证 Tkinter 线程安全。


4. 自动刷时长逻辑

核心逻辑在 worker_function 方法中实现:

  • 每隔一定秒数,向学习平台发送一次学习时长请求。

  • 若请求成功,学习总时长 +1 并更新进度条。

while not self.stop_event.is_set() and self.total_minutes < self.target_minutes:response = self.session.post(self.URL_STUDY, headers=headers, data=data, timeout=10)if response.status_code == 200:self.queue.put("success")

通过 threading.Event 控制线程停止,确保用户点击“停止”后立即终止后台任务。


5. UI 状态机

不同阶段控件状态不同,例如:

  • 登录前:用户名、密码、验证码可编辑;

  • 登录中:所有控件禁用,避免重复点击;

  • 登录成功:学习控制按钮启用;

  • 刷课中:仅允许“停止”按钮可点击。

代码:

states = {'IDLE': {...},  # 登录前'LOGGING_IN': {...},  # 登录中'LOGGED_IN': {...},  # 登录成功'RUNNING': {...},  # 刷课中'STOPPED': {...},  # 刷课已停止
}

这种状态机模式比直接在各处 config(state=...) 更清晰、更易维护。


四、实现效果

五、总结

通过本项目,不仅实现了一个实用的“学习时长助手”,还系统性地运用了以下技术点:

  • Tkinter GUI 设计与控件布局

  • Requests 会话管理与 POST 请求

  • 多线程与队列结合,解决 Tkinter 线程安全问题

  • 状态机模式简化复杂 UI 控件管理

声明:代码在上方资源处获取,仅作为学习用途,请勿用作非法用途,还是提倡认真学习!

http://www.dtcms.com/a/584950.html

相关文章:

  • 公司网站公司哪家好安居客网站怎么做
  • 制作企业网站要花多少钱建设工程168类似的网站
  • 网页开发视频教程徐州关键词优化
  • 网站底部加备案号域名备案时网站名字
  • 滨海网站建设广州企业网站设计
  • 有什么好的网站建设的书网络设备具体有哪些
  • 吴桥做网站价格蝉知cms wordpress
  • 亚马逊网站开发者平台代做网站和说明书
  • 李沧网站建设谁家好做网站为什么要用php
  • 做网站文案用哪个软件中英文外贸网站模板
  • 网站建设方案的需求分析如何做简单网站首页
  • ui是网站建设吗福州网页定制
  • 敦煌做网站 条件学新媒体运营要多少钱
  • 如何做网站里的子网站企业信息查询源码
  • 网站不兼容怎么办wordpress+移动
  • 做电销哪些网站可以找到客户端网站建设+青海
  • 郑州的网站公司哪家好做最好的win7系统下载网站
  • wordpress建设网站华大 网站建设
  • 枣庄机关建设网站小程序源码之家
  • 做农家乐农产品旅游的网站网络营销方式论文
  • 湖北襄阳住房保障和城市建设局网站wordpress前台无法访问
  • 中山网站只设计wordpress自建表格
  • 怎么降低网站的跳出率郑州汉狮哪家做网站好
  • 北京高端it网站建设许昌市做网站公司
  • 国家建设部官方网站赵宏彦网站续费如何做分录
  • 西安市专业网站建设企业信息管理系统软件
  • zzcms网站开发wordpress 特色 外链
  • 深圳做二类学分的网站活动营销的方式有哪些
  • 非盈利网站建设问题成都宅天下装饰公司口碑
  • 公司让做网站违法苏州知名高端网站建设企业