PyQt5 实现百度图片下载器GUI界面

通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载。可以通过界面上输入不同图片的关键字从而实现下载图片并将下载好的图片保存到自定义的文件路径中。

在介绍代码块内容之前,先来看一下需要用到的三方的 python 库。

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import os

from scripy_images import ScripyImages

那么剩下的两个操作库一个是 os 模块主要是用来做系统文件相关操作的,还有一个就是 scripy_images 模块是用来通过网络请求来获取和下载图片的。

接下来介绍 Pyqt5 相关的页面定义等函数的使用。同样的先在 Pyqt5 的窗口上面添加我们需要的需要的组件,最后通过将这些组件添加到布局里面,大概的实现过程就是遵循这个顺序来实现的。

  def init_ui(self):
        self.setWindowTitle('百度图片提取应用')

        grid = QGridLayout()

        self.page_label = QLabel()
        self.page_label.setText('设置爬取页数:')
        self.page_line_text = QLineEdit()
        self.page_line_text.setPlaceholderText('输入整数')
        self.page_line_text.setValidator(QIntValidator(1, 99))
        self.page_line_text.setFocus()

        self.keyword_label = QLabel()
        self.keyword_label.setText('设置图关键字:')
        self.keyword_line_text = QLineEdit()
        self.keyword_line_text.setValidator(QRegExpValidator(QRegExp('[\u4E00-\u9FA5]+')))
        self.keyword_line_text.setMaxLength(6)
        self.keyword_line_text.setPlaceholderText('输入汉字')

        self.file_path = QLineEdit()
        self.file_path.setPlaceholderText('自定义文件路径')
        self.file_path.setReadOnly(True)
        self.file_path_button = QPushButton()
        self.file_path_button.setText('自定义路径')
        self.file_path_button.clicked.connect(self.file_path_click)

        self.request_button = QPushButton()
        self.request_button.setText('快速开始抓取图片')
        self.request_button.clicked.connect(self.download_image)

        self.log_text = QTextEdit()
        self.log_text.setPlaceholderText('抓取进度结果展示...')
        self.log_text.setReadOnly(True)
        self.log_text.setMaximumHeight(100)

        self.version_msg_label = QLabel()
        self.version_msg_label.setText('<font color=blue>公众号:[Python 集中营] 发布</font>')
        self.version_msg_label.setAlignment(Qt.AlignCenter)

        grid.addWidget(self.page_label, 0, 0, 1, 1)
        grid.addWidget(self.page_line_text, 0, 1, 1, 2)
        grid.addWidget(self.keyword_label, 1, 0, 1, 1)
        grid.addWidget(self.keyword_line_text, 1, 1, 1, 2)
        grid.addWidget(self.file_path, 2, 0, 1, 2)
        grid.addWidget(self.file_path_button, 2, 2, 1, 1)
        grid.addWidget(self.request_button, 3, 0, 1, 3)
        grid.addWidget(self.log_text, 4, 0, 1, 3)
        grid.addWidget(self.version_msg_label, 5, 0, 1, 3)

        self.setLayout(grid)

再接着就是定义相应的槽函数,其中有两个槽函数的使用一个是实在定义文件的存储的路径时需要一个槽函数用来将获取文件路径。还有一个就是开始进行百度图片的下载过程,通过这个槽函数来调用下载模块的执行。

   def file_path_click(self):
        self.cwd = os.getcwd()
        directory = QFileDialog.getExistingDirectory(self, '选取文件夹', self.cwd)
        print(directory)
        self.file_path.setText(directory + '/')

    def download_image(self):
        check_param = False
        self.log_text.setText("")
        self.log_text.insertPlainText("-----开始必填项参数检查-----\n")
        if self.page_line_text.text().strip() != '' and \
                self.keyword_line_text.text().strip() != '' and \
                self.file_path.text().strip() != '':
            self.log_text.insertPlainText("---参数检查成功---\n")
            check_param = True
        else:
            self.log_text.insertPlainText("---参数检查失败---\n")
            self.log_text.insertPlainText("请填写必填项后继续...\n")
            check_param = False
        self.log_text.insertPlainText("-----结束必填项参数检查-----\n")

        if check_param is True:
            self.log_text.insertPlainText("-----开始下载百度图片-----\n")
            self.log_text.insertPlainText("---请耐心等待---\n")
            ScripyImages(page_num=self.page_line_text.text(),current=self.keyword_line_text.text(),file_path=self.file_path.text())
            self.log_text.insertPlainText("-----结束下载百度图片-----\n")

接着就是调用主函数执行整个逻辑。

 if __name__ == '__main__':
    app = QApplication(sys.argv)
    baidu = baiduImage()
    baidu.show()
    sys.exit(app.exec_())

整个 Pyqt5 的调用执行过程就是这样的 

到此这篇关于PyQt5 实现百度图片下载器GUI界面的文章就介绍到这了,更多相关PyQt5百度图片下载器GUI界面内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实战项目用PyQt5制作漫画脸GUI界面

    目录 最终效果 前言 1.PyQt5的安装. 1.PyQt5库的安装. 2.qt designer 布局的使用. 1:打开这个设计师 2:创建一个窗口 3:设计界面,用鼠标拖动左边的控件. 4:ui转化为py 5:在python上面运行转化后的py文件 6:运行py文件 3.百度智能云api的调用. 4.调控界面的控件. 5.最终成果 6.总结 最终效果 前言 这是最近在学qt这个东西,然后又学会了调用api,然后就想了用pyqt5做一个GUI界面,后期也可以打包分享给其他人使用,所以就最近就写

  • 使用PyQt5设计GUI实现程序图形界面设计

    目录 一.熟悉designer--设计界面的神器 1.首先打开designer. 2.创建窗口 3.熟悉各部功能区域 二.设计自己的第一个GUI. 1.在designer中拖动控件来完善窗口程序. 2.保存为.ui文件 3.将.ui文件转换成.py文件 4.添加程序入口 一.熟悉designer--设计界面的神器 designer是一个强大的GUI设计工具,设计完之后还可以自动生成代码,然后我们将这些代码转换成python代码就可以了,是不是很方便!! 1.首先打开designer. 还记得我们

  • PyQt5实现用户登录GUI界面及登录后跳转

    PyQt5是强大的GUI工具之一,通过其可以实现优秀的桌面应用程序.希望通过一个简单的登录页面可以让大家顺利入坑,如有不妥之处还请大佬指点改正! 导入业务需要的所有的扩展包. import sys # 系统参数操作 from PyQt5.QtWidgets import * # 模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 from PyQt5.QtCore import * # 此模块用于处理时间.文件和目录.各种数据类型.流.URL.MIME类型.线程或进程 from PyQt5

  • Python PyQt5模块实现窗口GUI界面代码实例

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台,包括:Unix, Windows, and Mac OS. 代码如下 from PyQt5.QtWidgets import QApplication,QWidget,QProgressBar,QPushButton from PyQt5.QtCore import QBasicTimer from PyQt5.QtGu

  • PyQt5 实现百度图片下载器GUI界面

    通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载.可以通过界面上输入不同图片的关键字从而实现下载图片并将下载好的图片保存到自定义的文件路径中. 在介绍代码块内容之前,先来看一下需要用到的三方的 python 库. from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import os from scripy_images import ScripyIm

  • 利用Python制作百度图片下载器

    前段时间写了一个百度图片下载器,结果发现有很多人需要使用.说实话之前写的那一款百度图片下载器比较LOW,今天刚好有时间就做了一下升级. 更新了两个BUG,一个是图片下载达到几千张的时候就没有图片可以下载了.另一个是下载进度不能实时的展示出来不知道下载到什么程度了. 同样的,我们先把需要的第三方库导入进来. '''UI界面相关的库''' from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import

  • 基于python3 的百度图片下载器的实现代码

    自己写了玩的一个小脚本,百度图片下载 import re import os import requests import hashlib def dowmloadPic(html, keyword): pic_url = re.findall('"objURL":"(.*?)",', html, re.S) if len(pic_url) < 1: return 1 i = 0 for each in pic_url: print(i + 1, end=',

  • 利用Python多线程实现图片下载器

    目录 导语 开发工具 环境搭建 原理简介 效果展示 导语 之前有很多小伙伴说想学习一下多线程图片下载器,虽然好像已经过去很久了,不过还是上来安排一波吧.至于题目为什么说是构建一个小型数据集,因为公众号之后的文章应该还会用到它来构建一些简单的图像分类数据集,换句话说,后续一段时间,公众号会主要写一些深度学习机器学习相关的文章,下期文章揭晓具体内容. 废话不多说,让我们愉快地开始近期最后一篇爬虫文章~ 开发工具 Python版本:3.7.8 相关模块: requests模块: alive-progr

  • php实现的css文件背景图片下载器代码

    本文实例讲述了php实现的css文件背景图片下载器代码.分享给大家供大家参考.具体实现方法如下: 下载css文件里面的背景图片是我们这些盗版份子长期搞的事情,下载个css图片下载器常出现各种广告弹窗,实在扛不住.这里就提供了一个php版的css文件背景图片下载器给大家. 把文件放到php程序目录 dos下面 php.exe cssImages.php 0 http://www.xxxx.com/css/style.css \images\ 先在php程序目录建个images文件夹,呵呵,贴代码:

  • python生成器/yield协程/gevent写简单的图片下载器功能示例

    本文实例讲述了python生成器/yield协程/gevent写简单的图片下载器功能.分享给大家供大家参考,具体如下: 1.生成器: '''第二种生成器''' # 函数只有有yield存在就是生成器 def test(i): while True: i += 1 res = yield i print(res) i += 1 return res def main(): t = test(1) # 创建生成器对象 print(next(t)) # next第一次执行从上到下,yield是终点 p

  • python编程scrapy简单代码实现搜狗图片下载器

    学习任何编程技术,都要有紧有送,今天这篇博客就到了放松的时候了,我们学习一下如何用 scrapy 下载图片吧. 目标站点说明 这次要采集的站点为搜狗图片频道,该频道数据由接口直接返回,接口如下: https://pic.sogou.com/napi/pc/recommend?key=homeFeedData&category=feed&start=10&len=10 https://pic.sogou.com/napi/pc/recommend?key=homeFeedData&a

  • Python+PyQt5制作一个图片查看器

    目录 前言 实现方式 测试 前言 在 PyQt 中可以使用很多方式实现照片查看器,最朴素的做法就是重写 QWidget 的 paintEvent().mouseMoveEvent 等事件,但是如果要在图像上多添加一些形状,那么在对图像进行缩放旋转等仿射变换时需要对这些形状也这些变换,虽然不难,但是从头实现这些变换还有形状还是挺讨厌的.好在 Qt 提供了图形视图框架,关于这个框架的基本使用可以参见 深入了解PyQt5中的图形视图框架,下面进入正题. 实现方式 一个最基本的照片查看器应该具有以下功能

  • 基于python实现的百度音乐下载器python pyqt改进版(附代码)

    前言 之前写过一个用python实现的百度新歌榜.热歌榜下载器的文章,实现了百度新歌.热门歌曲的爬取与下载.但那个采用的是单线程,网络状况一般的情况下,扫描前100首歌的时间大概得到40来秒.而且用Pyqt做的界面,在下载的过程中进行窗口操作,会出现UI阻塞的现象. 前两天有时间调整了一下,做了几方面的改进: 1.修改了UI界面阻塞的问题,下载的过程中可以进行其它的UI操作; 2.爬虫程序采用一个主线程,8个子线程的方式快速爬取,网络状况一致的情况下,将扫描100首歌曲的时间提高到了8.9秒左右

  • 基于PyQt5制作一个表情包下载器

    每次和朋友聊天苦于没有表情包,而别人的表情包似乎是取之不尽.用之不竭.作为一个程序员哪能甘愿认输,于是做了一个表情包下载器供大家斗图. 首先,还是介绍一下设计思路吧,和我们之前做的百度图片下载器2.0一样,使用pyqt5作为UI界面制作的框架,然后就是找一个表情包网站供我们可以下载很多的表情包. 表情包使用的网站是这个,大家也可以使用自己发现的表情包网站做下载. 话不多说,我们先说明一下使用到的python库有哪些. UI界面使用到的pyqt5模块是下面这几个,之前也是一直使用这几个库做UI界面

随机推荐