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