• Home
  • About
    • shawvey photo

      shawvey

      在写bug比赛中荣获第一名🐛

    • Learn More
    • Email
    • Twitter
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Notes

制作python桌面应用

23 Nov 2017

Reading time ~8 minutes

本文目录🧾

  • 一、 编写爬虫程序
  • 二、利用QTdesigner设计想要的界面
  • 三、将爬虫程序与ui文件关联
  • 四、pyinstaller exe应用打包
  • 五、完整代码
  • 六、参考教程

正文部分📝

所使用到的工具:

  • python编辑器(这里使用的是spyder)
  • Qt designer
  • cmd

一、 编写爬虫程序

  1. 导入所需要的包
#这里利用requests和bs4进行爬虫
import sys
import requests                                                                      
from bs4 import BeautifulSoup 
  1. 编写爬虫代码(示例:爬南昌天气)
url = 'https://www.tianqi.com/nanchang/'#所爬网站
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}#模拟登陆
r = requests.get(url, headers = headers)
content = r.text
soup = BeautifulSoup(content, 'lxml')#以lxml显示
divs = soup.find_all(class_ = 'weather_info')#登陆网页查看源代码找寻所要爬的内容
for div in divs:
    info=div.get_text()#获取父标签子标签所有内容

介于本文不是主要写python爬虫程序,我就只是简单注释了一下,以便以后查看。

二、利用QTdesigner设计想要的界面

python GUI工具有非常多,比如Tkinter等,我采用上手非常快的QTdesigner。
1.界面如下:

2.一般采用main windows
3.将左边item移到操作框中,在右边的属性操作框进行属性设置。
4.具体如何使用,可以自己试试,在文末我会提供一些浅显入门的文章。接下来就是将设计好的 ui文件保存。

三、将爬虫程序与ui文件关联

  1. 导入所需要的包
#这里是使用ui文件所需的包
from PyQt5 import  QtGui, QtPrintSupport , QtWidgets, QtCore,uic 
  1. 加入调用代码
qtCreatorFile=r"uiFile_address" #uiFile_address:ui文件位置
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.weather.setText(info) //weather是ui文件里文本框的名字,调用这个文本框显示爬出来的内容

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    app.aboutToQuit.connect(app.deleteLater)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

四、pyinstaller exe应用打包

win+R进入cmd-输入以下指令

pip install pyinstaller
pyinstaller.exe -i icon_address -w file_address

其中icon_address为图标所在的目录,file_address为程序所在目录

五、完整代码

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 14 11:41:19 2017

@author: shawvey
"""
#这里利用requests和bs4进行爬虫
import sys
import requests  
from bs4 import BeautifulSoup 
#这里是使用ui文件所需的包
from PyQt5 import  QtGui, QtPrintSupport , QtWidgets, QtCore,uic   
 
url = 'https://www.tianqi.com/nanchang/'#所爬网站
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}#模拟登陆
r = requests.get(url, headers = headers)
content = r.text
soup = BeautifulSoup(content, 'lxml')#以lxml显示
divs = soup.find_all(class_ = 'weather_info')#登陆网页查看源代码找寻所要爬的内容
for div in divs:
info=div.get_text()#获取父标签子标签所有内容

qtCreatorFile=r"D:\四年记\工作室\自己做的小东西\weather\weatherAngle.ui" #ui文件位置
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.weather.setText(info) //weather是ui文件里文本框的名字,这里调用这个文本框显示爬出来的内容

if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
app.aboutToQuit.connect(app.deleteLater)
window = MyApp()
window.show()
sys.exit(app.exec_())

六、参考教程

  • Python简单爬虫(爬取天气信息)
  • PyQt5教程 - QtDesigner窗口设计工具的使用
  • pyinstaller—3步即可将你的py文件转成exe格式


python Share Tweet +1