雲端抓取(GitHub) 在 GitHub 的機器上跑,不占用這台電腦和網路;在公司、手機都能用
按「在 GitHub 執行」→ 右邊的 Run workflow ▾ → 選模式(平常選「補齊」)→ 綠色的 Run workflow。
每天早上 7 點(臺北)也會自動全站重抓一次,GitHub 常延後,實際可能晚一兩個小時。跑完約 1 分鐘,重新整理這一頁就看得到新資料;
秘密客與 FAQ 搜尋站不會跟著更新,要在本機工作台按「同步到網站」。
本機抓取 用這台電腦和它的網路去抓
–總耗時
–平均每筆
–請求/秒
–實際下載
–網頁原始量
–留下的欄位
–每筆等伺服器
–每筆傳輸
工具 不用開命令列,按鈕就能跑
產生的
report.md 和 Excel 會放在專案資料夾裡。資料 · 篩選與匯出
–
| 發布時間 | 更新時間 | 檢視時間 | 下版日期 | 標題 | 發布機關 | 抓下 byte・gzip後 |
原始 byte・解壓後 |
需要 byte・那幾個欄位 |
內容 |
|---|
「抓下」是這一筆真正流過網路的位元組(gzip 壓縮後的整頁 HTML),
「需要」是這幾個欄位加起來的 UTF-8 位元組。兩者相差約 100 倍 ——
那 54 KB 的版型骨架跟內容一個字都沒關係。
三個數字都跟著每一筆資料存,本機和 GitHub 上看到的一樣。
發布機關(前 15 名)
發布年份
下版日期維護
點數字會跳到問答查詢並套用條件。
內容長度
位元效率
抓一整頁只為了其中幾百 bytes。這是爬蟲的成本結構,
跟問答內容無關。
問題類型
待修正最多的機關(前 15 名)
這一頁是拿來發給各局處的。已過期還掛著是下版日期已經過了但問答還在站上;
沒設下版日期表示不會自動下架,需要人工盯;一年以上沒檢視只看站上的
「資料檢視」欄位,沒有值就不算(不會拿發布或更新時間頂替);沒有內容是內文空白且沒有附件;標題重複是同一個標題
在站上出現一次以上,說明會註明內容一致或不同,按「比對」可以並排看差在哪;數字不一致是不同篇裡說法幾乎一樣的句子,
金額、期間或電話卻不同(主題不同也會比,例如一篇講申請、一篇講收費);
電話位數不對是 02 開頭卻不是 8 碼。匯出的 CSV 一列一個問題,可以直接按機關拆給承辦。
歷次測試 同樣筆數換不同抓法跑,這裡會累積成比較表
| 開始 結束 | 抓法 | 限速 | 範圍 | 筆數 | 耗時 | 每筆 | 等伺服器 | 傳輸 | 抓下/筆 實際下載 |
原始HTML/筆 解壓後 |
壓縮率 | 實際需要/筆 平均・最小~最大 |
有效率 |
|---|
每次執行也會自動存一份逐筆原始資料到 exports/ 資料夾,檔名帶日期時間與抓法
「等伺服器」= 送出請求到收到第一個位元組(含連線建立與 ASP.NET 產頁);
「傳輸」= 把 body 收完。兩者都是每次請求的平均。
「抓下」是真正流過網路的位元組(gzip 壓縮後),「原始HTML」是解壓後的完整頁面
—— 關掉 gzip 的抓法這兩欄會一樣。「實際需要」是那幾個要留的欄位。
總筆數一樣不代表沒事 —— 可能今天新增一筆、同時下架一筆。
所以每次抓取都逐筆比對前一版,把進出和欄位變動記在這裡。