給Python3爬蟲做一個介面 妹子圖網實戰 1
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
給Python爬蟲做一個介面.概述
一、實驗簡介
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
進入系統後,如果 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 試試:
$ python3Python 3.4.3 (default, Oct 14 2015, 20:28:29)[GCC 4.8.8] on linuxType "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 sysfrom 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