工具分享01 | Python福彩双色球数据爬取+分析工具

大家好,我是欧K~

本期使用Python的Tkinter制作一个福彩双色球历史数据采集及分析的界面小工具,可自定义福彩历史期数,爬取双色球历史数据,展示爬取结果、统计分析数据,也可以导出Excel数据表格。希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

运行界面:

1. 运行流程

1.1 打开工具,设置历史期数


1.2 点击爬取数据(过程需要保持联网)


1.3 爬取数据完成


1.4 分析数据(未爬取数据时,按钮灰选,不可操作)

1.5 导出数据


1.6 数据表

2. 绘图


2.1 框架结构布局


def create_main_frames(self):
        """创建主框架结构"""
        # 顶部控制区域
        self.top_frame = tk.Frame(self.root, padx=10, pady=10)
        self.top_frame.grid(row=0, column=0, columnspan=2, sticky="nsew")

        # 顶部区域内部布局
        self.params_frame = tk.Frame(self.top_frame)
        self.params_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

        self.describe_frame = tk.Frame(self.top_frame, bg='white')
        self.describe_frame.pack(side=tk.RIGHT, fill=tk.BOTH, expand=True)

        # 底部控制区域
        self.bottom_frame = tk.Frame(self.root, padx=10, pady=10)
        self.bottom_frame.grid(row=1, column=0, columnspan=2, sticky="nsew")

        # 底部区域内部布局
        self.data_frame = tk.Frame(self.bottom_frame)
        self.data_frame.grid(row=0, column=0, sticky="nsew")

        self.analysis_frame = tk.Frame(self.bottom_frame)
        self.analysis_frame.grid(row=0, column=1, sticky="nsew")

        # 设置底部框架的列权重
        self.bottom_frame.grid_columnconfigure(0, weight=1)
        self.bottom_frame.grid_columnconfigure(1, weight=1)
        self.bottom_frame.grid_rowconfigure(0, weight=1)

2.2 添加菜单


def create_menu(self):
        """创建菜单栏"""
        mainmenu = Menu(self.root)
        
        # 帮助菜单
        aboutmenu = tk.Menu(mainmenu, tearoff=False)
        aboutmenu.add_command(label="联系作者", command=self.about_command)
        mainmenu.add_cascade(label="帮助", menu=aboutmenu)

2.3 添加控件


def add_controls(self):
        """添加各种控件"""
        # 添加说明文本
        self.add_description()
        
        # 添加参数控件
        self.add_parameter_controls()
        
        # 添加数据显示区域
        self.add_data_display()
        
        # 添加数据显示区域
        self.add_analysis_display()

2.4 添加数据展示


def add_data_display(self):
        """添加数据显示区域"""
        tk.Label(self.data_frame, text='历史数据展示: ').grid(row=0, column=0)
        
        # 添加滚动条
        scrollbar = tk.Scrollbar(self.data_frame)
        scrollbar.grid(row=1, column=1, sticky='ns')
        
        self.data_text = tk.Text(
            self.data_frame, 
            font=self.font_12,
            yscrollcommand=scrollbar.set,
            wrap=tk.WORD,
            padx=5,
            pady=5
        )

2.4 导出数据


def export_data(self):
        """导出数据到Excel"""   
        def get_column_letter(n):
            letter = ''
            while n > 0:
                n, remainder = divmod(n - 1, 26)
                letter = chr(65 + remainder) + letter
            return letter

        if len(self.data_dict) == 0:
            messagebox.showinfo("提示", "请先获取数据!")
        else: 
            file_path = 'cp.xlsx'
            if os.path.exists(file_path):
                workbook = load_workbook(file_path)
                sheet = workbook.active
                sheet.delete_rows(1, sheet.max_row)
            else:
                workbook = Workbook()
                sheet = workbook.active

3. 工具获取

公众号后台回复:工具001</span >