[流程設計參考] Google 店家資訊擷取與歸檔

需求說明 :

將 L01 課程中所抓取的 Google 店家資訊(星等、地址、電話),輸出至指定資料夾 A(使用者自行指定),而這些檔案的歸檔方式需要依照 資料夾A > 店家名稱 > 商家名稱-星等.txt、商家名稱-地址.txt、商家名稱-電話.txt 來歸檔。

需要檔案 :

  1. keywordList.csv :
    L01 中課程所使用的關鍵字列表,根據此列表前往 Google 搜尋商家資料,檔案格式如下 :
keyword
麥當勞 民權一店
肯德基 雙連店

技能設計 :

1. 流程規劃 :

我們需要依照 keywordList.csv 中的店家來一一搜尋相關資訊並將這些資訊歸檔,所以所有流程都會在循環工作模式下來設計。

循環表格工作 > 搜尋商家> 抓資料 > 歸檔 > 結束循環

2. 開發細節 :

可以參考以下我的開發步驟

2.1 進入訓練模式

點選「我的技能」頁面中,「訓練技能」的按鈕進入訓練模式。


設定「瀏覽器資料庫名稱」與「清除工作資料夾」,並按下「開始」進入訓練介面

訓練模式介面

2.2 循環表格工作

點選「循環表格工作」來進入循環工作模式。


選擇「keywordList.csv」檔案做為循環的依據,並設定「欄位分隔符號」為逗號,按下「測試」來確認偵測到的表頭是否正確,確認沒問題後點選「確定」。

2.3 打開「訓練模式工作資料夾 tmp」確認循環表格工作是否正確產生相對應文字檔

「循環表格工作」會依據 keywordList.csv 中的 column Name 來產生相對應的文字檔,以這個例子來說會產生 row-keyword.txt 的文字檔。

2.4 前往 Google Search 頁面

進入循環工作模式後,在 EMILY 瀏覽器視窗輸入 https://google.com 前往 Google Search 頁面。

2.5 插入文字 & 發送按鍵「ENTER」

使用「插入文字」功能,指定 row-keyword.txt 文字檔內容輸入至搜尋框內。


成功根據 row-keyword.txt 的內容輸入後的畫面如下 :

接著使用「發送按鍵」 ENTER 讓瀏覽器前往搜尋結果的頁面

成功搜尋到相關店家

2.6 保存內容,擷取「星等」、「地址」、「電話」

利用保存內容功能,來抓取所需的資訊


保存的類型選擇「文字」,並在右方瀏覽器視窗「點選要抓取的資料」,讓 EMILY 「自動生成節點路徑

存檔名稱的規則是 : 店家名稱-星等店家名稱-地址店家名稱-電話,在存檔名稱的欄位使用 %環境變數% 來將店家名稱帶入檔名


按下「測試」並確認工作資料夾內是否產生相關檔案,並確認檔案檔名、內容是否正確。

重複以上步驟來抓取 「星等」、「地址」、「電話」,結果如下:

2.7 使用「匯出工作資料夾」歸檔

先點選「前往網址」讓瀏覽器視窗回到訓練模式首頁並選擇「匯出工作資料夾」模組


先使用「PICK」選擇要輸出的目的地資料夾,接著在下方程式碼撰寫區根據歸檔邏輯來撰寫。

程式碼請參考以下 :

// input[{src, dst}] represents file objects in workspace
// output[{src, dst}] is the output file object array

//利用 api.read() 將工作資料夾中的商家名稱文字檔讀取進來
let storeName = api.read("row-keyword.txt")
//工作資料夾內的所有檔案會被整裡為陣列 input 
input.forEach(file => {
  //如果工作資料夾內的檔名包含店家名稱,就將此檔案輸出出去
  if(file.src.includes(storeName))
  {
    output.push(
      //src 代表在工作資料夾中檔名
      //dst 代表輸出後的檔名(路徑)
      {
        src : file.src,
        dst : `/${storeName}/${file.src}`
      }
    )
  }
})

程式碼撰寫完畢後,打開「DEBUG」並「TEST」測試程式碼的運行是否正常運行,確認沒問題後即可按下「SAVE」完成此模組的設定。

2.8 退出循環工作並結束訓練

退出循環工作後,結束訓練,並測試此流程、上傳至 SKILL HUB 即可完成。