既然單筆能跑通,照理說自動化的下一步就是「批次抓取」:讓機器人自己巡迴檢索清單中的每一筆專利,依序點進去抓取詳細資訊。
運作邏輯示意
[搜尋結果頁]
│
▼
【步驟 1:Table Extraction】
抓取整頁表格,得到清單 DataTable(包含:第 1 筆~第 20 筆的公開號)
│
▼
【步驟 2:For Each Row in Data Table】(走訪每一筆)
│
├─► 點進該筆專利詳細頁
├─► [Day 6 防禦機制] Click 'more' (Timeout=3s, ContinueOnError=True)
├─► 抓取 5 大欄位 (申請日、申請人、發明人、優先權、摘要)
├─► Append Line 存入本機 D:\RPA\專利資料.jsonl
└─► 點擊「返回清單」或使用 Go to URL 回到結果頁
要將昨天的單筆流程升級為多筆自動化,架構上需要調整三個部分:
清單抓取:利用 Extract Table Data 抓取當前頁面的專利清單,並存入 DataTable。
容器封裝:使用 For Each Row in Data Table 把點擊、擷取多欄位、格式化字串的動作整套包進迴圈。
動態跳列與返回:
點擊專利時,不能寫死專利號,必須隨迴圈遞增列數。
抓取完一筆後,必須點擊「回檢索結果」回到清單,供下一輪繼續執行。
為了解開這問題,我的想法是改以「欄位屬性 + 動態列數」來定位:
鎖定欄位名稱:colName='公開公告號'
解除文字鎖定:取消 aaname
動態列數:利用迴圈自帶的 CurrentIndex 來累加
但是最後卡在 Selector Editor 的驗證環節:
當在編輯器內將 tableRow 綁定為 targetRow 時,因為設計階段(Design Time)缺乏執行期的動態數值,導致編輯器內的即時驗證(Validate)無法亮綠燈。
今天有點累,明天再來繼續解決他