原本使用Excel / 在Excel查詢下載google表單(google forms)的試算表資料(google sheets)
提過的「從Web」查詢來抓取發布到網路的google sheets
但是抓回來的資料會有空白列
而且,如果資料內有換行符號的時候,例如:表單的題目類型為「段落」
貼回工作表的時候,會自動分行
這樣等於一筆資料的某一欄位的資料分列在多行
因此,思考如何修改查詢回來的資料
在測試的過程中,嘗試使用新版的「從Web」查詢,也就是Power Query
雖然可以在編輯「資料行」中利用取代的方式移除換行符號
只是這樣要依據每個資料表來設定查詢參數
感覺太麻煩了
所以改用SeleniumBasic來處理
可以參考這篇 VBA / 使用Excel VBA爬蟲Google搜尋結果
一開始想用模擬複製、貼上的方式
後來才發現SeleniumBasic不能將資料貼入Excel
只能模擬鍵盤輸出到瀏覽器中
最後,找到利用 .AsTable.ToExcel 將取得的html表格資料轉為excel表格資料的方法
Set BOT = New WebDriver ... BOT.FindElementByCss(".waffle").AsTable.ToExcel Sheets(TableName).Range("A1")
發佈到網路的google sheets,資料是在class名稱為waffle的表格裡
可以用FindElementByCss(“.waffle”)來抓取
因為只有一個table,也可以用FindElementByTag(“table”)
備註:
FindElementByCss 抓取第一個符合的Css,等於FindElementsByCss(1)
同理
FindElementByTag 抓取第一個符合的Tag,等於FindElementsByTag(1)
.AsTable.ToExcel 後面接著要貼入資料的工作表位置
這個方式解決了換行的問題
但是空白列還是要另外寫程式來處理…