使用PyQt5创建爬虫页面

1、创建页面信息

 		# 读取屏幕的 大小
        desktop = QDesktopWidget()
        win_width = desktop.screenGeometry().width()
        win_height = desktop.screenGeometry().height()
        self.app_width = 1000
        self.app_height = 600
        self.setGeometry((win_width - self.app_width) / 2, (win_height - self.app_height) / 2, 1000, 600)
        self.setWindowTitle('Pyqt5 示例')
        img_io = io.BytesIO(win_icon)
        img = Image.open(img_io)
        ico = img.toqpixmap()
        self.setWindowIcon(QIcon(ico))
        # 显示窗口
        self.show()

注:这里读取了屏幕的大小,使页面显示在屏幕的中心位置,图标读取图片bytes,也防止打包后图标不显示的问题

效果图:
在这里插入图片描述

2、增加链接输入框和启动按钮、日志框
在这里插入图片描述

这里是一个QLineEdit 输入框 和QPushButton按钮、 QTextBrowser文本,很简单,就不贴代码了

3、业务逻辑代码

    def start_data(self):
        start_text = self.start_button.text()
        if start_text == '开始':
            self.start_button.setText('结束')
            link = self.link.text()
            if link:
                self.settings.setValue('LINK', link)
                self.s_t = LinkThread(link)
                self.s_t._signal.connect(self.receive_result)  # 连接信号
                self.s_t.start()
            else:
                QMessageBox.warning(self, "错误", '链接不能为空')

        else:
            self.start_button.setText('开始')
            try:
                self.s_t.is_on = False
            except:
                pass

    def receive_result(self, log_text):
        # 输入日志
        self.log_browser.append(log_text)
        # 自动下拉
        self.log_browser.moveCursor(self.log_browser.textCursor().End)

PyQt 线程

class LinkThread(QThread):
    # 创建信号
    _signal = pyqtSignal(list)

    def __init__(self, link):
        self.link = link
        self.is_on = True
        super(LinkThread, self).__init__()

    def run(self):
        try:
            self._signal.emit(['Exception', '直播已结束'])
        except Exception as e:
            self._signal.emit(['Exception', e])

注: 任务选择使用pyqt的线程 数据由pyqtSignal信号传输,不会导致页面的卡顿, 还可以控制is_on 实现线程的停止

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值