PyQt5 python爬蟲Gui化

大家寫爬蟲不外乎是抓圖片或是整理資料等, 執行時會需要編

譯的環境, 如果寫的是工具, 對一般使用者不是很友善, 因此最簡單的方式是作出GUI的界面, GUI介面有使用JAVA或是C等語言寫成, 但是要接上爬蟲不是很容易, 且程式碼比較複雜, 因此這次我們要使用python來寫Qt5的桌面程式(Qt5的開發環境要先搭建)

以下是範例完成結果

基本上是一個簡單的查詢系統, 搭配爬蟲可以做到多平臺查詢的功能, 這次示範以單一網站Gimy查詢

總之目標是查動漫的神器

流程

寫主要程式碼之前, 會需要一個UI檔, UI檔是在Qt Design(設計的程式, 要下載)裡面設計好介面的.ui檔案, 把設計好的.ui檔轉換成.py的檔案, 於主程式中讀取, 顯示出界面

以下是示範UI檔的設計(這裏只是大概示範排版而以, 詳細的拘束或尺寸要在屬性面板調整, 各個屬性, 可以查詢官方文檔, 顏色修改的部分位於主程式碼中)

設計好後要將.ui檔轉換成.py檔, 這邊使用的是vs code的插件來轉換(還有另外一個Qt for python也可以轉換)

於專案資料夾中放入.ui檔, 對ui檔按右鍵選擇

按下compile form後, 會自動生成Ui_原本檔名.py檔, 例如test.py會生成Ui_test.py檔

接著要開始寫主程式

於專案資料夾內新增.py檔, 這裏使用gimy.py檔示範(相關檔案最好都放在同個資料夾下)

以下是所需引用的函式庫(注意from Ui_gimy import Ui_MainWindow要替換還有dialog的部分是介紹視窗, 要自行設計, 也可自行改成按兩下選項直接開啓網頁)

宣告一個物件, 繼承QtWidgets.QMainWindow(元件的定義要根據Ui_.py檔的設定來寫)

控制視窗顯示

補充:Dialog的部分網路上都不是很詳盡的介紹, 我會提供完整的檔案, 大家可以去

研究摸索一下(絕對不止一下)

完整程式碼, 不包含轉換過的.ui檔

GimyLite

打包成像.exe檔可以使用pyinstaller(下pyinstaller gimy.py他會自己開始打包, 可執行檔在專案資料夾下的dist檔案夾裡)

碎碎唸

可以不看

總之這篇只是範例, 中間有不瞭解的函數還是要看官方文件, 一開始可以先練習簡單的專案, 例如網路上的教學等, 資料顯示的部分原是爬好第一頁的部分先行顯示, 後面的頁數爬好後存進文字檔, 但不知道為什麼總是全部爬好後才顯示, 因此資料輛大會有顯示延遲的問題, 目前解決是先判斷搜尋結果的頁數, 有不同的處理方式, 盡量減少延遲過久的狀況, 簡介則是即時的, 總之大家可以去研究資料儲存的部分或是採用多線程的方式(關鍵字:爬蟲加速), 顏色的配色如果覺的自己調的很醜, 可以找自己喜歡的程式開啟後用顏色擷取器之類的程式來找, 或是用截圖的方式在這裡查詢。

留言