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

Python 自动化 打开网站 填表登陆 例子

图样

简价:

简要说明这个程序的功能:

1. **基本功能**:
   - 自动打开网站
   - 自动填写登录信息(号、公司名称、密码)
   - 显示半透明状态窗口实时提示操作进度

2. **操作流程**:
   - 打开网站后自动点击两个位置(1515,130)和(990,355)
   - 依次填写:税号 → 公司名称 → 密码
   - 最后自动按回车确认

3. **配置参数**:
```python
CONFIG = {
    'tax_id': 'xxxxxxx',    # 号
    'company_name': '登记名字',       # 公司名称
    'password': 'abc',              # 密码
    'wait_time': 1,                 # 每步操作等待时间
    'initial_delay': 3,             # 初始等待时间
    'url': 'https://xxxxxx/'  # 网站地址
}
```

只需要修改 CONFIG 中的参数就可以适应不同的登录信息。
 

代码: 

# -*- coding: utf-8 -*-
import pyautogui
import time
import pyperclip
import logging
import webbrowser
import tkinter as tk
from typing import Optional# 配置日志
logging.basicConfig(level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s'
)# 配置参数
CONFIG = {'tax_id': 'xxxxxxx号','company_name': '登记名字','password': 'abc','wait_time': 1,'initial_delay': 3,'url': 'https://xxxxxxxx/'
}class StatusWindow:def __init__(self):self.root = tk.Tk()self.root.title("自动操作状态")# 设置窗口大小和位置self.root.geometry("300x100+100+100")# 设置窗口透明度self.root.attributes('-alpha', 0.8)# 设置窗口置顶self.root.attributes('-topmost', True)# 创建标签self.label = tk.Label(self.root,text="准备开始...",font=('微软雅黑', 12),wraplength=280)self.label.pack(pady=20)def update_status(self, message: str):"""更新状态信息"""self.label.config(text=message)self.root.update()def close(self):"""关闭窗口"""self.root.destroy()def open_tax_website() -> None:"""打开网站"""try:logging.info("正在打开网站...")webbrowser.open(CONFIG['url'])# 等待浏览器加载time.sleep(CONFIG['initial_delay'])# 移动到第一个位置并点击logging.info("移动到第一个位置...")pyautogui.moveTo(1515, 130)pyautogui.click()# 等待5秒time.sleep(5)# 移动到第二个位置并点击logging.info("移动到第二个位置...")pyautogui.moveTo(990, 355)pyautogui.click()# 等待1秒time.sleep(1)except Exception as e:logging.error(f"打开网站或移动鼠标时发生错误: {str(e)}")raisedef safe_paste(text: str, wait_time: Optional[float] = None) -> None:"""安全地执行复制粘贴操作"""wait_time = wait_time or CONFIG['wait_time']try:pyperclip.copy(text)time.sleep(wait_time)pyautogui.hotkey('ctrl', 'v')time.sleep(wait_time)except Exception as e:logging.error(f"粘贴文本 '{text}' 时发生错误: {str(e)}")raisedef safe_key_press(key: str, wait_time: Optional[float] = None) -> None:"""安全地执行按键操作"""wait_time = wait_time or CONFIG['wait_time']try:pyautogui.press(key)time.sleep(wait_time)except Exception as e:logging.error(f"按键 '{key}' 操作发生错误: {str(e)}")raisedef fill_tax_form() -> None:"""填写表单的主要函数"""status_window = StatusWindow()try:status_window.update_status("开始填写表单...")logging.info("开始填写表单...")# 首先打开网站status_window.update_status("正在打开税务网站...")open_tax_website()status_window.update_status("正在进行页面操作...")# 等待页面加载完成status_window.update_status("等待页面加载...")time.sleep(CONFIG['initial_delay'])# 输入税号status_window.update_status("正在输入税号...")logging.info("正在输入号...")safe_paste(CONFIG['tax_id'])safe_key_press('tab')# 输入公司名称status_window.update_status("正在输入公司名称...")logging.info("正在输入公司名称...")safe_paste(CONFIG['company_name'])safe_key_press('tab')# 输入密码status_window.update_status("正在输入密码...")logging.info("正在输入密码...")safe_paste(CONFIG['password'])safe_key_press('enter')  # 直接按回车确认status_window.update_status("表单填写完成!")logging.info("表单填写完成")time.sleep(2)  # 显示完成信息2秒except Exception as e:status_window.update_status(f"发生错误: {str(e)}")logging.error(f"填写表单时发生错误: {str(e)}")time.sleep(3)  # 显示错误信息3秒raisefinally:status_window.close()if __name__ == "__main__":try:fill_tax_form()print('表单填写已完成')except Exception as e:print(f'程序执行出错: {str(e)}')


http://www.mrgr.cn/news/81364.html

相关文章:

  • 【C#】try-catch-finally语句的执行顺序,以及在发生异常时的执行顺序
  • java agent的使用【通俗易懂版】
  • 数据库安全-redisCouchdb
  • HTMLCSS:惊!3D 折叠按钮
  • 2025考研加油!Jing也加油哦!
  • Java测试开发平台搭建(四)拦截器
  • OpenEuler 22.03 安装 flink-1.17.2 集群
  • 重温设计模式--1、组合模式
  • Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
  • mysql,数据库主从同步搭建
  • 【Unity3D】Particle粒子特效或3D物体显示在UGUI上的方案
  • [搜广推]王树森推荐系统笔记——曝光过滤 Bloom Filter
  • tcp 的三次握手与四次挥手
  • mysql数据库面试核心概念
  • 我的JAVA-Web基础(2)
  • Jenkins集成部署(图文教程、超级详细)
  • 阿里 2024:技术创新与前沿研究的璀璨之年
  • redis延迟队列
  • Java SE
  • EMS(energy managment system)从0到1
  • React里使用lodash工具库
  • 机器学习基础
  • Redis缓存数据库
  • [搜广推]王树森推荐系统笔记——矩阵补充最近邻查找
  • 自动驾驶---Parking端到端架构
  • 深度学习中的残差网络、加权残差连接(WRC)与跨阶段部分连接(CSP)详解