news 2026/5/7 12:07:21

医院预约挂号脚本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
医院预约挂号脚本

医院预约挂号脚本

功能介绍

本脚本是一个用 Python 编写的医院预约挂号程序,支持以下功能:

  1. 自动预约:通过api交互选择医院、科室、医生和时间段。
  2. 自动监控:持续检查指定医生的号源状态,发现可预约时段时自动尝试预约。

核心代码解析

1. 主程序 (main.py)

# -*- coding: utf-8 -*-importtimefromschemaimportAddRegArgs,DeptSchForDocArgs,DocSchArgs,NumberSourceArgsfromapiimportApidefappointment():""" 预约程序入口,通过命令行交互完成挂号 """api=Api()hospitals=api.get_hospital()print("请选择院区,输入院区前方序号")forindex,hospitalinenumerate(hospitals):print("{}):{}".format(index,hospital["aliasName"]))hospital_index=int(input("请输入院区序号:"))hospital=hospitals[hospital_index]# 后续科室、医生、时间选择逻辑...# 完整代码见 a.txtdefmonitor():""" 每10秒检查一次号源状态,发现可预约时段时自动尝试预约 """whileTrue:try:# 检查号源状态doc_schDate=api.get_doc_sch(args)iflen(doc_schDate)>0:# 尝试自动预约response=api.add_reg(args)ifresponse["code"]=="0":print("预约成功!")exceptExceptionase:print(f"程序异常:{e}")time.sleep(10)if__name__=="__main__":monitor()

2. 数据模型 (schema.py)

# -*- coding: utf-8 -*-frompydanticimportBaseModelfromtypingimportUnionclassHospitalArgs(BaseModel):sysCode:Union[str,int]="1001035"classDeptListArgs(BaseModel):clinicalType:str=1hosId:intsysCode:Union[str,int]="1001035"classDeptSchForDocArgs(BaseModel):clinicalType:str=1deptCode:str=NonedeptId:str=deptCode specialtyId:str=NonedeptName:strvisitingArea:strhosId:intrecommendation:str=""type:str="order"source:int=22sysCode:Union[str,int]="1001035"defupdate(self):self.deptId=self.deptCodeclassDocSchArgs(BaseModel):deptId:strdeptName:strdocId:strdocName:strdocTitle:strdocPhoto:strhosId:inthosName:strtype:str="order"visitingArea:str=""clinicalType:str=1source:int=22sysCode:Union[str,int]="1001035"classNumberSourceArgs(BaseModel):sysCode:Union[str,int]="1001035"ampm:strcategor:strdocId:strdeptId:strhosId:Union[str,int]schDate:strschId:strclassAddRegArgs(BaseModel):# key不一致参数disNo:str=NoneschDate:str=NonepatienId:str=None# 必须参数clinicalType:str=1visitingArea:str=""ampm:strappointmentNumber:str=disNo categor:strcategorName:strdeptId:strdeptName:strdocId:strdocName:strendTime:str=""extend:str=""fee:strhosId:Union[str,int]hosName:strisFlexible:str=""numId:str=""patientId:str=patienId resDate:str=schDate schId:strsource:int=22startTime:str=""sysCode:Union[str,int]="1001035"thirdUserId:str=""timeDesc:strtimePoint:str=""schQukCategor:strdefupdate(self):self.appointmentNumber=self.disNo self.resDate=self.schDate self.patientId=self.patienId

3. 配置文件 (conf.ini)

[**省中医院] host = https://www.rjh.com.cn/ deskey = wewerwe username = 你的账号 password = 你的密码 token = token

使用说明

  1. 运行环境

    • Python 3.6+
    • 依赖库:pydanticrequests
  2. 启动方式

    python main.py
  3. 配置说明

    • 修改conf.ini中的账号和医院配置
    • 支持直接使用 token 登录

实现细节

  1. 字典展开语法

    all_args={**dept,**hospital}args=DeptSchForDocArgs(**all_args)
  2. 异常处理

    • 捕获网络请求异常
    • 支持 Ctrl+C 中断程序
  3. 定时检测

    • 每10秒检测一次号源
    • 预约成功后等待10分钟

提示:部分代码,已脱敏,本脚本仅用于学习交流,请勿滥用。欢迎感兴趣的同学一起交流!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 13:21:05

53、SSH可扩展认证:PKI与Kerberos实现

SSH可扩展认证:PKI与Kerberos实现 在网络安全领域,可扩展的认证机制对于保障通信安全至关重要。本文将详细介绍基于PKI(公钥基础设施)和Kerberos的SSH可扩展认证方法,包括具体的操作步骤和技术原理。 1. PKI认证配置 1.1 简单配置概述 以在Linux主机上安装的Tectia Se…

作者头像 李华
网站建设 2026/5/4 20:57:38

57、SSH技术:插件应用、调试与常见问题解决

SSH技术:插件应用、调试与常见问题解决 1. Tectia插件相关要点 Tectia插件在SSH认证和授权方面有着重要作用,但使用时需注意诸多细节。 - AuthKbdInt.Plugin关键字限制 :该关键字只能指定一个插件。若插件要支持多种键盘交互式认证技术,需在初始交互时让用户选择技术,…

作者头像 李华
网站建设 2026/5/5 19:16:09

58、SSH 常见问题及解决方案

SSH 常见问题及解决方案 1. OpenSSH 和 Tectia 配置要求 在使用 OpenSSH 和 Tectia 进行 SSH 连接时,需要满足特定的配置要求。 - OpenSSH 配置 : - PubkeyAuthentication yes 需同时存在于服务器和客户端配置中。 - EnableSSHKeysign yes 必须在服务器配置里。 …

作者头像 李华
网站建设 2026/5/3 10:26:56

MySQL索引优化实战指南:Archery平台双剑合璧

MySQL索引优化实战指南:Archery平台双剑合璧 【免费下载链接】Archery hhyo/Archery: 这是一个用于辅助MySQL数据库管理和开发的Web工具。适合用于需要管理和开发MySQL数据库的场景。特点:易于使用,具有多种数据库管理功能,包括查…

作者头像 李华
网站建设 2026/5/4 21:52:21

开源简历神器OpenResume:零基础3分钟打造完美求职简历

在当今竞争激烈的就业市场中,一份专业的简历是您获得面试机会的关键。OpenResume作为一款功能强大的开源简历构建器和解析器,让简历制作变得前所未有的简单高效。无论您是职场新人还是资深专业人士,这款完全免费的工具都能帮助您在短时间内创…

作者头像 李华
网站建设 2026/5/6 11:56:35

33、PyQt数据库编程全解析

PyQt数据库编程全解析 1. 连接数据库 在对数据库进行操作之前,我们需要先建立与数据库的连接。在许多数据库应用程序中,这一操作通常在创建 QApplication 对象之后、主窗体创建或显示之前完成。不过,也有一些应用程序会在后续需要时才建立连接。 要使用PyQt的SQL类,我…

作者头像 李华