iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
Software Development

我命由我不由語言 java爬蟲挑戰系列 第 4

java爬蟲挑戰 Day 4 - 591租屋爬蟲 需求分析&系統設計

  • 分享至 

  • xImage
  •  

有了基礎知識後,接下來就要進行程式開發前的準備

需求分析 (Requirements Analysis)

需求對象

  • 自己

系統需求

  1. 通知功能

    • 當系統找到符合條件的物件時,使用 Discord 進行通知。
  2. 篩選條件

    • 指定篩選的物件條件包括:
      • 地點
      • 價位
      • 房型
      • 樓層
      • 有無冷氣
      • 是否有對外窗
      • 是否為非限女性租客
  3. 通知內容

    • Discord 通知內容應包括:
      • 簡要的房間資訊(如房間大小、價格等)
      • 物件的連結,方便點擊查看詳細信息

591規則

我們先前往591官網認識一下591的規則
當我們在點選條件時,會發現url會變換
https://ithelp.ithome.com.tw/upload/images/20240821/20168635Lf2YAngAc8.png

可以得知,591的條件是使用Http GET來控制

系統設計 (System Design)

而根據上述的需求,我想到兩種做法

1. 使用591的搜尋條件

爬蟲程式定期執行我的條件,只要是新的物件,就進行通知。
比如使用下圖的條件:
https://ithelp.ithome.com.tw/upload/images/20240821/20168635uQ1daaz1yh.png

2. 自定義推播條件

不代任何條件,只要有新的物件就抓下來,後面再透過我的推播管理模組進行是否要推播。
條件:
https://ithelp.ithome.com.tw/upload/images/20240821/20168635sXDv2CpH2l.png

考慮到未來的擴展性,我覺得方案2比較好,所以接下來會往方案2進行開發。

下圖是簡易的架構圖
https://ithelp.ithome.com.tw/upload/images/20240821/20168635UG7t7KmZUk.png

本來有考慮要將爬蟲推播兩個服務拆開
但是這次參加鐵人賽,把兩個服務結合,學習難度會比較低,所以這次就採用單個服務完成爬蟲及推播。
缺點就是以後擴展成本就會比較高。

小結

今天我們從需求分析的角度出發,整理了系統的核心需求,並對591租屋網的運作規則進行了初步探討。接下來,我們提出了兩種系統設計方案,並選擇了更具擴展性的方案2作為開發方向。這一方案將允許我們在未來更加靈活地管理推播條件和通知策略。

在接下來的日子裡,我們將逐步進入程式開發階段,實現這些需求和設計。


上一篇
Java爬蟲挑戰Day 3 - HTTP請求與網頁解析
下一篇
Java爬蟲挑戰 Day 5 - Spring boot專案建立 & Jsoup爬取HTML資料
系列文
我命由我不由語言 java爬蟲挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言