iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
AI 自動化

RPA流程自動化應用系列 第 8 篇

【Day 8】我們不可能永遠只抓 1 筆,如何邁向抓多筆?PART-2

  • 分享至 

  • xImage
  •  

經過努力了一天,解決無法動態抓取的問題,以下是我修改的部分。
https://ithelp.ithome.com.tw/upload/images/20260922/20178363R59dNsg5UC.jpghttps://ithelp.ithome.com.tw/upload/images/20260922/20178363dBWqMA8azm.jpg
流程改動內容與步驟對照變數宣告區(最外層 Sequence 變數管理)
改動:新增變數 jsonList,型態設為 System.Collections.Generic.List<System.String>,並設定預設值為 New List(Of String)。
目的:在流程一開始建立記憶體中的字串清單,用來累積儲存每一輪迴圈抓取到的專利 JSON 物件。
第 8 步:Assign(解析公開公告號)

System.Text.RegularExpressions.Regex.Match(String.Join(" ", CurrentRow.ItemArray), "TW\d+[A-Za-z]").Value

改動:將正則表達式從 TW\w+ 修正為 TW\d+[A-Za-z]。
目的:避免誤抓表格前方不可點擊的純數字「申請號」,確保抓出帶有英文字尾的「公開公告號」。
第 10 步:Click 'TW202636634A'(點擊專利超連結)
改動:將點擊方式由 Double(雙擊)修正為 Single(單擊)。
輸入模式設為 Simulate(模擬點擊)。
將固定案號的 Selector 改以動態變數 targetRow 進行相對列號定位:

"<webctrl tableRow='5' tag='TABLE' /><webctrl tag='A' tableRow='" + targetRow + "' />"。

目的:解決網頁連結被雙擊卡死、因固定案號導致後續迴圈找不到元件,以及點擊無法觸發網頁跳轉的問題。
第 11 步~第 16 步:Check App State、Get Text 諸多步驟與 Click 'INPUT(2)'(回上一頁按鈕)
改動:將這些活動的 Window Selector(視窗標題)由寫死的特定專利名稱,統一改為萬用字元

<html app='chrome.exe' title='*全球專利檢索系統' />。   

目的:使流程在處理第 2 筆、第 3 筆不同案名的專利時,仍可正確辨識並鎖定瀏覽器分頁,防止逾時報錯。
第 17 步(原迴圈內):移除 Write Text File,新增 Invoke Method
改動:刪除原本在迴圈內部直接寫入檔案的 Write Text File,改為插入 Invoke Method 活動,調用清單的 Add 方法將每筆 jsonString 寫入 jsonList。
目的:避免每次迴圈執行時,新資料直接覆蓋舊檔案,導致最後只留存最後一筆專利的狀況。
第 18 步(For Each Row 迴圈外):新增 Write Text File (Combined JSON)
改動:在 For Each Row 迴圈結束的正下方加入 Write Text File,檔案路徑為 D:/RPA/專利資料.json,內容設定為:

"[" + vbCrLf + String.Join("," + vbCrLf, jsonList) + vbCrLf + "]"

目的:在全部專利資料收集完畢後,一次性組裝成標準的 JSON 陣列格式 [ {專利1}, {專利2}, {專利3} ] 並寫入檔案。
完成結果
https://ithelp.ithome.com.tw/upload/images/20260922/20178363TMAfdrFuCp.jpg


上一篇
【Day 7】我們不可能永遠只抓 1 筆,如何邁向抓多筆?
下一篇
【Day 9】用 UiPath 實作專利資料多維度規則比對與分流引擎
系列文
RPA流程自動化應用 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言