當前位置:
首頁 > 知識 > 老司機飆車必備——妹子圖網爬蟲實戰

老司機飆車必備——妹子圖網爬蟲實戰


關注Python開發


前言


少年,聽到秋名山上轟鳴的發動機聲了嗎……

本節課將教你結

合PyQt和Python爬蟲,完成一個帶交互界面的妹子圖網站爬蟲。


本節課將

利用PyQt給妹子圖網的爬蟲做一個交互界面,從而對PyQt做界面有初步了解,學會如何生成圖片預覽、表單操作等。


課程分為三節,跟著做完後你將得到下面這個程序,整整齊齊的妹子圖片靜靜躺在這裡,不喜不悲。


一、課程介紹


1. 內容簡介


通過 PyQt 給妹子圖網的Python爬蟲做一個交互界面,從而對 PyQt 有初步的理解,並學會如何使用 Qt Creater 做界面以及實現基礎功能。課程分為三個部分:




  1. 了解如何將 Qt Creator 生成的界面導入的 Python 的環境中,並完成一個計算器Demo;



  2. 學會再實現 PyQt 中,完成圖片預覽以及元素列表兩個Demo;



  3. 完成妹子圖網爬蟲的交互界面。


2. 課程知識點




  • PyQt 相關知識



  • Python Qt 編程


3. 適合人群


本課程難度屬於一般,屬於初級級別課程,適合具有 Python 基礎的用戶,熟悉 Python 基礎知識加深鞏固。

4. 實驗環境




  • Xfce終端



  • Python 3.x.x



二、實驗目的




通過本次實驗,學會如何在 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 也安裝好了:



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



做到這裡,課程的第一個章節結束,相信你已學到了PyQt的基本用法。




後面還有《

模塊化實踐——完成圖片預覽以及元素列表》《成品——完成爬蟲以及界面的結合》兩節,將帶你一步步完成一個有交互界面的妹子圖爬蟲程序。老司機一定打開電腦進入實驗樓,親手把這個項目敲出來呀!




推薦程序員必備微信號













程序員大咖



微信號:CodePush




推薦理由:

為程序員提供最優質的博文、最精彩的討論、最實用的開發資源;提供最新最全的編程學習資料:PHP、Objective-C、Java、Swift、C/C++函數庫、.NET Framework類庫、J2SE API等等。並不定期奉送各種福利。



▼長按下方↓↓↓二維碼識別關注





喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python開發 的精彩文章:

TAG:Python開發 |

您可能感興趣

男神必備飛機頭
帥氣女孩,衣櫥必備機車皮外套
弘安保羅機械甩棍體驗,夜間打車防身必備
上海女子圖鑑,帶你玩轉職場必備「黑科技」!
「摳圖教程」告別PS,小白必備手機摳圖神器
野營必備手機充電鍋
渣男必備手機軟體
圍裙款式好看又實用 下廚必備的戰鬥盔甲
奶油小姐姐必備——奶油杏子妝
島國奇葩貨 單身女子必備「男友窗帘」
四款汽車必備的車載好物,有了它們,入門車型也能實力秒殺頂配車
電競必備利器 努比亞紅魔遊戲手機再開售
奇葩二戰武器,機槍型攝像機,開槍攝像兩不誤,戰鬥機二戰必備!
豬精女孩人手必備刷子
蒸烤一體機,廚娘的必備神器!
穿衣必備技能@小仙女
老羅!鎚子T3網友都給你設計好了!鎚子手機,雷神必備!
女生必備的基礎款鞋子
信鴿肉鴿都必備的鴿子保健液
《刺激戰場》吃雞必備槍械