内容简介:老司机必备——用PyQt做一个有交互界面的妹子图爬虫
代码飙车,指日可待。今天的课程教大家结合PyQt和 Python 爬虫技术,做一个带有交互界面的妹子图网站爬虫程序。
本教程由 GarfieldThunder 发布在 实验楼 ,完整教程、代码及在线练习地址: 给Python3爬虫做一个界面.妹子图网实战 (更多课程请查看 全部 - 课程 - 实验楼 )
一、实验简介
1.1 实验内容
通过 PyQt 给妹子图网的Python爬虫做一个交互界面,从而对 PyQt 有初步的理解,并学会如何使用 Qt Creater 做界面以及实现基础功能。课程分为三个部分:
- 了解如何将 Qt Creator 生成的界面导入的 Python 的环境中,并完成一个计算器Demo;
- 学会再实现 PyQt 中,完成图片预览以及元素列表两个Demo;
- 完成妹子图网爬虫的交互界面。
这是本课程的第一次实验。在这里先给大家看看,学完这三节课之后,最后我们要完成的效果:
1.2 实验知识点
- PyQt 相关知识
- Python Qt 编程
1.3 实验环境
- Xfce终端
- Python 3.x.x
1.4 适合人群
本课程难度属于一般,属于初级级别课程,适合具有 Python 基础的用户,熟悉 Python 基础知识加深巩固。
二、实验目的
通过本次实验,学会如何在 Ubuntu 系统配置Qt Creator,并了解生成的界面文件与 Python 间的交互模式。
三、开始实验
3.1 环境配置
本实验环境采用带桌面的 Ubuntu Linux 环境,实验中会用到的程序:
- Qt Creator: 一个轻量级界面开发环境,其设计目标是设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。
- requests :是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库
- beautifulsoup : 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。(在第三节课完成爬虫的项目时会用到)
进入系统后,如果 Linux 中默认的 python3 为 3.5 版本,可以通过以下指令切换到 3.4:
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.4 70 --slave /usr/bin/python3m python3m /usr/bin/python3.4m
更新 apt-get 的链接:
$ sudo apt-get update
安装 Qt Creater 以及 PyQt5 相关组件:
$ sudo apt-get install qtcreator pyqt5-dev-tools
安装 beautifulsoup(bs4):
$ sudo apt-get install python3-bs4
安装完成后,在 Xfce 终端中输入 python3 或 python3.4 进入 Python3 的交互界面,并引入 PyQt5 、requests 以及 bs4 试试:
$ python3 Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.8] on linux Type "help", "copyright", "credits" for "license" >>>import requests >>>from bs4 import BeautifulSoup >>>from PyQt5 import QtCore, QtWidgets
此外,上述安装完成之后,我们看到 ubuntu 界面里面:应用程序 - 开发 — Qt Creator 也安装好了:
3.2 Qt Creator第一次实践——完成计算器Demo
我们打开 Qt Creator ,按照 File - New File or Project - Qt - Qt Designer Form - Main Window,然后更改文件名以及路径,就可以看到新建的界面了(如果感觉界面太窄,可以通过命令 xrandr 命令来更改页面分辨率,具体可以看 这里 )
现在需要完成加法器,实现两个数字a和b的相加,数字a和b的通过数字输入。拖拽元素将这个界面完成,效果如下图。左边有简单的加法输入以及输出显示框,点击下面计算按钮开始计算,右边有一个输出历史计算的页面。元素列表处可以看到各个拖拽元素的名称以及对应的类,所有的这些元素都在MainWindow以及centralwidget上面
记住我们所设定元素的名称都是:数字输入分别为textEdit、textEdit_2、数字输出为textEdit_3、计算记录输出为textBrowser以及计算按钮为pushButton所对应的元素名称。
保存后,会在工作目录上出现一个以.ui后缀为名的文件,打开可以发现内部就是一个xml文件。现在我们需要通过 python 来对其中的元素进行关联,从而实现最终的显示、按键动作的实现。
import sys from PyQt5 import uic, QtWidgets (form_class, qtbase_class) = uic.loadUiType('mainwindow.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,完成减法运算。
答案可以看:
$wget http://labfile.oss.aliyuncs.com/courses/813/Demo2.py
四、扩展阅读
做到这里,课程的第一个章节结束,相信你已学到了PyQt的基本用法。
后面还有《模块化实践——完成图片预览以及元素列表》《成品——完成爬虫以及界面的结合》两节,将带你一步步完成一个有交互界面的妹子图爬虫程序。老司机一定打开电脑进入实验楼,亲手把这个项目敲出来呀!
完整教程、代码及在线练习地址: 给Python3爬虫做一个界面.妹子图网实战 (更多课程请查看 全部 - 课程 - 实验楼 )
以上所述就是小编给大家介绍的《老司机必备——用PyQt做一个有交互界面的妹子图爬虫》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- python爬虫爬取糗百成 人的妹子图片(urllib2)
- Scrapy框架爬取海量妹子图
- 由一个萌妹子引发的CTF Writeup
- Java 妹子与数据库老头的交流
- Python爬知乎妹子都爱取啥名
- 数据工程师妹子养成手记——数据库篇
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出Web设计(中文版)
(美)瓦特罗尔、(美)西罗托 / O'Reilly Taiwan公司 / 东南大学出版社 / 2010-11 / 99.00元
你将从《深入浅出Web设计(中文版)》学到什么?你曾经希望看看书就能学到真正的网站设计吗?曾经想过该如何同时达成让网站看起来美观,又能有效率地沟通信息,还要通过可访问性与可用性的策略吗?《深入浅出Web设计》正是精通上述主题的秘笈。我们将学到如何设计一个绝佳、用户友好的网站,上谈客户需求,下说手绘分镜表,乃至完成在线所需的HTML与css主文件……而且会有一个真正可以运作的网站!一起来看看 《深入浅出Web设计(中文版)》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
SHA 加密
SHA 加密工具