/591_rent

Primary LanguageJavaScript

超簡單一鍵推播 591 租屋資訊完全免 Coding-透過 Google Sheet 與 LINE Notify


2022/01/23 更新:

新年快樂~修復之前寫死 Cookie 導致的問題。 Github: https://github.com/dang113108/591_rent Commit: https://github.com/dang113108/591_rent/commit/4d6de2f7ee527cf450f17894fcc17935062fe895


2021/11/08 更新:

修復因 591 改版導致整組壞掉的問題! Github: https://github.com/dang113108/591_rent/tree/dev


2021/09/08 更新:

感謝邦友 flier268, travis668 幫忙修復因 591 改版導致抓不到 cover image 的問題! Github: https://github.com/dang113108/591_rent/tree/dev


2021/02/22 更新:

感謝邦友 Chil 幫忙抓到一個 Bug,如果有在之前嘗試使用失敗的朋友再麻煩覆蓋最新版本的 Code 或直接重來一次,謝謝! Github: https://github.com/dang113108/591_rent/tree/dev


現在房子合約是到六月底,有鑑於租的地方離公司及市區有大概半小時的車程,因此在過完年後的二月中我認為差不多可以開始找下一間房子了。

剛好我的朋友 Robin 在我們的群組分享了他寫的 rentHouse 這個工具,透過 node.js 自己去架設一個 server 來爬 591 的資訊並且推播到 LINE Notify,讓我們可以即時追蹤新發布的物件,效果其實已經相當不錯。但是我沒用,對不起,我沒用

但這次要分享的算是基於他的想法以及我之前使用過 Google Sheet 的經驗來開發的,透過 Google Apps Script 內建的「觸發條件」我們可以設定每分鐘爬一次 591 的資訊,並且一樣推播到 LINE Notify 外,我們還可以將這些資料統整至 Google Sheet 上,去篩選哪些是我可以考慮的,而哪些是我不想要的;而最重要的-不需要任何指令、npm、或安裝額外的東西,只要根據這篇文章的教學,任何人都可以自己架設一個!

功能介紹

  • 每分鐘透過你設定的篩選條件到 591 網站上爬蟲並將資訊上傳至 Google Sheet 及推播到 LINE Notify
  • 如果該物件已曾經推播過且價格沒有變動,不會再次推播
  • 如果該物件已曾經推播過且價格有變動,會再次推播
  • 透過 Google Sheet 特性,可多人同時編輯 (但請注意你的 LINE Notify Token 可能會外洩)
  • 透過 LINE 特性,可多人加入同一群組一起討論

實際使用多週後的展示

  • Google Sheet

Google Sheet 實際案例

  • LINE Notify

LINE Notify 實際案例


開始設定!

第一步,複製 Google Sheet

Google Sheet link: 591 Rent Template

  1. 點進去連結後,記得要先登入你的 Google 帳號
  2. 點選「檔案 > 建立副本」

檔案 > 建立副本

  1. 輸入你想要的名稱後,按下確定來建立副本

複製文件

  1. 複製完成!

複製完成

第二步,取得 591 的資料

591 link: https://rent.591.com.tw/

  1. 進入 591 網站後,第一步請先打開瀏覽器的「開發人員工具」

開發人員工具開啟方式:Google Chrome

開啟開發人員工具

  1. 進入「Network」的分頁

Network分頁

  1. 搜尋「/home/search/rsList」,此時還不會看到任何東西

搜尋 URI

  1. 回到 591 的頁面,搜尋你想要的條件

591篩選條件

  1. 按下「刊登時間」以刊登時間作為排序(最新到最舊)

以刊登時間做排序

  1. 這時回到「開發人員工具」的畫面,可以看到像是這樣的畫面,已經有資訊了

已取得 591 資料

  1. 點選最下面的一筆,待會會需要複製圖片中紅線部分(包括問號)

取得 591 資料

第三步,取得 LINE Notify Token

LINE Notify 首頁:https://notify-bot.line.me/zh_TW/

  1. 請先將 LINE Notify 加入成為你 LINE 的好友

將 LINE Notify 加入好友

  1. 建議先在 LINE 中創建一個群組,並邀請 LINE Notify 進入你的群組裡

將 LINE Notify 加入群組

  1. 進入 LINE Notify 首頁,並請登入你的 LINE 帳號

登入 LINE Notify

  1. 進入你的「個人頁面」

進入個人頁面

  1. 點選「發行權杖」

點選發行權杖

  1. 尋找你剛剛創建的群組,並輸入這個權杖的名稱(該名稱除了管理用之外也會是推播內容的標題)

設定發行權杖

  1. 點選發行後,會出現該權杖的 Token,請不要將此 Token 外洩以免有人瘋狂傳訊息給你 XD

複製 Token

  1. 待會會需要複製這個 Token,而且此頁面關閉後將沒辦法再次查看這個 Token,所以請先將他複製到一個安全的地方或先不要關閉這個頁面

最後一步,將以上取得的資訊放入 Google Sheet 中

  1. 請回到你剛剛所建立的 Google Sheet 副本,並且點選「工具 > 指令碼編輯器」

指令碼編輯器

  1. 此時會開啟一個新頁面並可以看到原始碼,在這邊我們只需要將剛剛取得的資訊貼到相對應的地方就好

請注意必須保留雙引號的部分

修改 Google Apps Script

  1. 按下儲存按鈕

儲存專案

  1. 接著將上方的功能選取為「main」後點選「執行」

執行測試

  1. 可能會跳出需要你授權的視窗,請依照他所跳出的視窗登入你的帳號並允許授權

需要授權

未經驗證

我很安全

允許授權

  1. 確認下方的執行紀錄沒有錯誤即可到下個步驟

確認執行紀錄

  1. 點選左側的鬧鐘圖示(觸發條件)

進入觸發條件

  1. 點選右下角的「新增觸發條件」

新增觸發條件

  1. 請依序將「選擇您要執行的功能」選擇為「main」、「選取活動來源」選擇為「時間驅動」、選取時間型觸發條件類型選擇為「分鐘計時器」,並確定「選取分鐘間隔」為「每分鐘」後,按下儲存按鈕

調整觸發條件

  1. 成功!

新增觸發條件成功


成果展示

在以上步驟都完成後,Google Apps Script 便會根據你所設定的條件每分鐘去爬一次 591 的資料,並儲存到你所建立的 Google Sheet 以及推播到你的 LINE Notify。

如果過了一分鐘後都沒有任何通知或更新,有可能是剛好過去一兩分鐘都沒有新的物件,所以請不用擔心、繼續等待

  • Google Sheet (如果 LINE 有通知但 Google Sheet 上沒有的話,請重新整理 Google Sheet 頁面)

Google Sheet 成果展示

  • LINE Notify

LINE Notify 成果展示


以上分享,有任何問題歡迎留言提問 : ) Github: https://github.com/dang113108/591_rent