這什麼好東西有料
針對巴哈姆特和噗浪的 Python 爬蟲
Python crawler for Gamer and Plurk
Player_SystemCall
不過除了程式碼和參考資料的連結可以複製外,
其他都不可以複製就是了。
一、事前準備
(一)需求
利用 Python 製作的自動化爬蟲程式將巴哈姆特 Gamer 小屋和噗浪 Plurk 個人首頁統計的追蹤者人數、朋友人數、每日流量等數字每天定時自動記錄在 Google Sheets 的工作表上。在經過在完成針對巴哈姆特小屋和噗浪個人首頁的爬蟲後,可以在微調後去爬其它的社群網站,因為邏輯相同。
(二)流程圖
圖 1 專案流程圖(附工作內容)
圖 2 爬蟲程式流程圖重點節錄
圖 3 爬蟲程式流程圖-1
圖 4 爬蟲程式流程圖-2
(三)前置作業
這裡指的前置作業分為 2 個步驟,第 1 個步驟是建立網路爬蟲,第 2 個步驟是建立自動化工作。
建立爬蟲程式所需的物品清單如下:
- 一台個人電腦,其上需要
- 可以連網且傳輸穩定、
- 文字編輯器和程式編譯器或是 IDE、
- 文書處理軟體(如果要寫成紀錄的話)、
- 一個專用的資料夾(裡面放什麼後面說)。
- 1 支 Google 帳號,需要用它來
- 進入 Google 雲端平台 GCP 取得 Google Sheets API 的憑證、
- 建立 1 個 Google Sheets 檔案。
現代人搞 1 台基礎電腦應該不難,連網也是,然後我用的 IDE 是 Spyder,文書編輯則是 Word。
建立自動化工作所需的清單:
- 電腦的工作排程器(電腦應該都有,用途為本地端的自動化和測試)
- 雲端運算平台和其帳號 1 支(如:Google 雲端平台 GCP、亞馬遜雲端運算服務 AWS)或是 GitHub 帳號 1 支和其上一個程式庫。
自動化工作依照程式執行位置可以分成本地端(個人電腦)和雲端(自有伺服器和法人有伺服器)2 處地方,基於爬蟲程式的重複性和專案整體的方便性,我會建議將爬蟲的執行放在雲端,因為被用於雲端服務的伺服器群並沒有開關機和網路的問題,除非全球長期斷網和長期大停電,但這並不是說不能放在普通電腦,只是相較於雲端需要注意的點比較多而已。所以我在建立完爬蟲程式後,我會先用電腦裡的工作排程器測試爬蟲程式,試試看可不可以從頭到尾自動跑一遍,然後再開始上雲端,關於這部分,我打算使用 GitHub Action。
然後是專案資料夾要放什麼東西,雖然可以直接像煮泡麵一樣全部丟一起,但是在未來找檔案會很痛苦,此外,並不是每個人都會安裝版本控制軟體或是用到 GitHub,所以程式的存放會分成「只有本地端的專案資料夾」、和「本地端加推上雲端(使用 GitHub 桌面)的專案資料夾」和「一開始就和 GitHub 等相結合的專案資料夾」3 種,我用第 2 種,我接下來會將它們的內部設置都寫出來,目前適用於 Python。
| 專案資料夾 Project Folder 在本地端裝置 On Local Device ├說明文件.txt├說明文件.md ├build(專案程式測試和運作過程所產生的檔案) ├docs(關於這個專案的大部份文件) │├程式製作全紀錄.dcox │├參考來源.docx │├package.txt │└相關筆記.txt ├src(程式碼) ├tool(第三方工具) └final_file(成品檔) 在雲端裝置 On Cloud Device ├README.md(介紹專案) ├.gitignore(版本控制忽略名單) ├.gitattributes(設定 git 在操作某些檔案的時候要做那些處理) ├main.py ├build(專案程式測試和運作過程所產生的檔案) │docs(關於這個專案的大部份文件) │├程式製作全紀錄.dcox │├參考來源.dcox(需要) │└package.txt └tool(第三方工具) |
既然東西有了,就要幫文件分類了,以下是我的分類範例:
專案文件 Project File 在本地端裝置 On Local Device ├必要文件 Necessary Documents │├說明文件.txt(介紹專案) │└說明文件.md(介紹專案) ├副程式 Subprogram │└sub.py └主程式 Mainprogram └main.py 在雲端裝置 On Cloud Device ├必要文件 Necessary Documents │├README.md(介紹專案) │├.gitignore(版本控制忽略名單) │└.gitattributes(設定 git 在操作某些檔案的時候要做那些處理) ├副程式 Subprogram │└sub.py └主程式 Mainprogram └main.py |