给Python3爬虫做一个界面.妹子图网实战 1

给Python爬虫做一个界面.概述

一、实验简介

1.1 实验内容

通过 PyQt 给妹子图网的Python爬虫做一个交互界面,从而对 PyQt 有初步的理解,并学会如何使用 Qt Creater 做界面以及实现基础功能。课程分为三个部分:

  1. 了解如何将 Qt Creator 生成的界面导入的 Python 的环境中,并完成一个计算器Demo;
  2. 学会再实现 PyQt 中,完成图片预览以及元素列表两个Demo;
  3. 完成妹子图网爬虫的交互界面。

这是本课程的第一次实验。在这里先给大家看看,学完这三节课之后,最后我们要完成的效果:

1.2 实验知识点

  • PyQt 相关知识
  • Python Qt 编程

1.3 实验环境

  • Xfce终端
  • Python 3.x.x

1.4 适合人群

本课程难度属于一般,属于初级级别课程,适合具有 Python 基础的用户,熟悉 Python 基础知识加深巩固。

二、实验目的

通过本次实验,学会如何在如何结合 PyQt 以及 Python, 完成图片预览以及元素列表两个Demo。

三、开始实验

3.1 环境配置

本实验环境采用win10环境,实验中会用到的程序:

  1. Qt Creator: 一个轻量级界面开发环境,其设计目标是设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。
  2. requests:是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库
  3. beautifulsoup: 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。(在本节课需要用到)

前面的文章已经介绍过如何使用pyqt5,以及如何搭配环境,此处便不再重复。

3.2 Qt Creator第一次实践——完成计算器Demo

我们打开 Qt Creator ,按照 File - New File or Project - Qt - Qt Designer Form - Main Window,然后更改文件名以及路径,就可以看到新建的界面了(如果感觉界面太窄,可以通过命令 xrandr 命令来更改页面分辨率,具体可以看这里

保存后,会在工作目录上出现一个以.ui后缀为名的文件,打开可以发现内部就是一个xml文件。现在我们需要通过 python 来对其中的元素进行关联,从而实现最终的显示、按键动作的实现。

import sys
from PyQt5 import uic, QtWidgets

(form_class, qtbase_class) = uic.loadUiType('demo.ui')

class MainWindow(form_class, qtbase_class):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.addfunction)

    def addfunction(self):
        a = float(self.textEdit.toPlainText())
        b = float(self.textEdit_2.toPlainText())
        c = a + b
        self.textEdit_3.setText(str(c))
        self.textBrowser.append("%.2f + %.2f = %.2f" % (a, b, c))

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    ui = MainWindow()
    ui.show()
    sys.exit(app.exec_())

首先是一些包的加载,然后就是加载我们的 .ui 文件,通过 uic.lodUiType 函数可以输出两个类,一个是 form class,一个是 Qt base class。根据链接的说明文件,form class 仅是一个类,衍生自 Python object type,Qt base class是一个ui的框架类,这个框架就类似于 QDialog 、 QWidget 以及 QMainWindow 。(但是这两个类的具体情况还是没有弄清楚,例如:ui 的基本特征是哪个 class 提供,通过 super 继承是如何使这两个类运行起来的,等等)。

后面的 MainWindow 的类就是我们用来实现界面中数字的输入输出、以及函数加载功能:

通过 toPlainText 可以获得 textEdit 以及 textEdit_2 中输入的数字数字,并在 addfunction 内完成加法运算,最后将结果输出到 textEdit_3 里面。通过 textBrowser.append 将 生成计算的算式显示在 textBrowser 中。

最后的主函数为固定写法,最终显示的效果如附图所示:

三、实验总结

通过这一次实验,相信大家对如何通过PyQt以及Python做一个交互界面,已经有一个初步的了解,这样后面的课程就比较好开展了。

课后各位有兴趣可以想想,如果再现在这个Demo的基础上,再增加一个pushButton,完成减法运算。

四、扩展阅读

给Python爬虫做一个界面.上

猜你喜欢

转载自blog.csdn.net/zulien/article/details/84990613