使用tkinter和pyinstaller开发一个GUI爬虫程序

标签: python  tkinter  pyinstaller

今天看b站是发现了一个视频使用tkinter来开发pythonGUI程序就跟着一起做然后随便使用pyinstaller打包成window下的可执行文件

导入的模块

import os
import tkinter
from tkinter.scrolledtext import ScrolledText
import urllib.request
import requests
import time
import threading
from bs4 import BeautifulSoup

requests的请求urllib.request可以完成,做个新尝试
root=tkinter.Tk()
root.wm_title('spider')#设置窗口左上角的文字
root.wm_geometry('600x500+350+100')#设置窗口大小widthxheight+x+y
root.iconbitmap('Spider_128px_1191381_easyicon.net.ico')#设置窗口图标

def scrollcall(*args):
    scroll_bar.set(args[1],0)
scroll_bar=tkinter.Scrollbar(root,command=scrollcall)#设置滚动条
scroll_bar.pack(side=tkinter.RIGHT,fill=tkinter.Y)
scroll_bar.set(0,0)
text_box=tkinter.Text(root)#设置文本框
text_box.config(yscrollcommand=scroll_bar.set,height=36,background='#ffffff',font=('宋体',10),fg='#0000CD')
text_box.pack()
scroll_bar.config(command=text_box.yview)
thread_new=start_stop_thread()

button=tkinter.Button(root,text='确认爬取',font=('宋体',10),command=thread_new.start_thread)#设置按钮
button.pack()

button_stop=tkinter.Button(root,text='退出程序',font=('宋体',10),command=thread_new.stop_thread)
button_stop.place(relx=0.7,rely=0.965,anchor=tkinter.CENTER)

vart=tkinter.StringVar()
vart.set('爬虫已准备,点击开始...')
label=tkinter.Label(root,textvariable=vart,font=('宋体',10),fg='red')
#label.place(x=28,y=475,anchor=tkinter.NW)
label.place(relx=0.25,rely=0.97,anchor=tkinter.CENTER)
root.mainloop()

本来scrollbar和textbox使用scrolltext两行代码的事,上面完成了GUI的建立,爬虫程序不是重点
下面的是使用pyinstaller打包成可执行的exe文件
1、到github下载最新的pyinstaller,然后在cmd里进入到pyinstaller文件夹使用python setup.py install安装
2、继续使用命令打包成exe文件python pyinstaller.py --icon=图标目录 -F -w test.py(-h可以查看帮助,一开始我是直接用pip安装打包没成功)
  • -F 表示生成单个可执行文件

  • -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!

  • -p 表示你自己自定义需要加载的类路径,一般情况下用不到

  • -i 表示可执行文件的图标

我的是有界面的无控制台程序所以用的-F -w,如果只有控制台的程序-F,-i和--icon效果一致
3、到生成的文件夹里的dist文件夹里有生成的exe文件点击即可执行,如果你的python需要什么外部文件,相应的按照路径导入即可

版权声明:本文为fate54321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fate54321/article/details/77172790