1. 程式人生 > >給Python3爬蟲做一個介面 妹子圖網實戰 1

給Python3爬蟲做一個介面 妹子圖網實戰 1

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

給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 基礎知識加深鞏固。

二、實驗目的

通過本次實驗,學會如何在 Ubuntu 系統配置Qt Creator,並瞭解生成的介面檔案與 Python 間的互動模式。

三、開始實驗

3.1 環境配置

本實驗環境採用帶桌面的 Ubuntu Linux 環境,實驗中會用到的程式:

  1. Qt Creator: 一個輕量級介面開發環境,其設計目標是設計目標是使開發人員能夠利用 Qt 這個應用程式框架更加快速及輕易的完成開發任務。
  2. requests:是用Python語言編寫,基於 urllib,採用 Apache2 Licensed 開源協議的 HTTP 庫
  3. 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 試試:

$ 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 也安裝好了:

開啟Qt Creator

3.2 Qt Creator第一次實踐——完成計算器Demo

我們開啟 Qt Creator ,按照 File - New File or Project - Qt - Qt Designer Form - Main Window,然後更改檔名以及路徑,就可以看到新建的介面了(如果感覺介面太窄,可以通過命令 xrandr 命令來更改頁面解析度,具體可以看這裡

新建 ui 介面

ui 介面

現在需要完成加法器,實現兩個數字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

四、擴充套件閱讀

給Python爬蟲做一個介面.上

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述