日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

艺赛旗RPA 网页处理系列(四):网页表格中获取数据,并点击相应记录后的按钮操作说明总结

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 艺赛旗RPA 网页处理系列(四):网页表格中获取数据,并点击相应记录后的按钮操作说明总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前藝賽旗RPA已經更新到8.0版本,可以讓所有用戶免費下載試用http://www.i-search.com.cn/index.html?from=line1 (復制鏈接下載)

  • 問題描述
    最近有很多同學都在問如何取得網頁表格里的數據?如何根據表格里的數據點擊相應的操作?
  • 這兩個問題實際上在我們的社區里已經有相關的帖子了,但還是很多人會問,也不會操作

    • 第一個問題,可參考 如何從 table 中取出數據 6.0 版本
    • 第二個問題,可參考 點擊網頁表格中特定行里面的一個操作按鈕
      在這里我做一個總結,并一步步的操作說明供大家參考

    在實際操作之前,你需要做以下幾件事情:

  • 把上面兩個帖子可以先瀏覽一下

  • 了解一些 css selector 的知識,我也不是專家,這里不做總結 ?,也是百度里搜資料看,大家也要養成自學的一些技能

  • 學會一些審查網頁元素的小技巧,可參考 網頁檢查 / 審查小技巧

  • 需要了解一些 python 語言 pandas 的知識

  • 需求實現說明
    好了,我們先來說一下需求,我需要在表格中找到產品代碼為 test120 的記錄,并點擊對應的刪除按鈕。截圖如下

    那么在解決這個問題的時候,首先就是要先能獲取到表格數據并匹配到相應的記錄(如 test120),然后再找到該記錄對應的刪除按鈕進行點擊操作,因此大致可以分為兩個部分,也就是開篇說的第一個和第二個問題的集合。

  • 獲取網頁表格數據
    3.1 拾取網頁表格
    使用一個可拾取的組件來拾取表格,這里用【鼠標點擊】組件來操作

  • 這里需要注意,拾取的時候要拾取整個網頁的表格,而不是表格中的某一個內容,正確拾取如下圖所示

    也可以通過設計器里的圖片預覽功能驗證你拾取的對不對

    3.2 獲取網頁表格的 selector
    【鼠標點擊】組件的查找路徑中,選擇 selector
    7289e87543b148e5b30cbcfa442e6337_E5DA75892CE647CB8DDAE307D2AE570B.png

    選擇后通過編譯,看下對應的代碼

    selector=r’body > DIV:nth-of-type(1) > FORM:nth-of-type(1) > DIV:nth-of-type(2) > DIV:nth-of-type(1) > TABLE:nth-of-type(1)'這種最后一個 > 后面是 TABLE 標簽的,就是我們想要的。

    3.3 獲取表格中數據
    通過使用以下代碼獲取表格里的數據,這里不做詳述,可復制使用
    可以通過函數或代碼塊的方式調用

    import ubpa.iie as iie
    import re
    import pandas as pd

    #把3.2章節當中selector=后面的代碼復制到這里
    table_string = iie.get_html(title=r’理財管理’,selector=r’body > DIV:nth-of-type(1) > FORM:nth-of-type(1) > DIV:nth-of-type(2) > DIV:nth-of-type(1) > TABLE:nth-of-type(1)’)

    tb_start = re.compile(’’)
    tb_end = re.compile(’’)
    last_str = tb_end.sub(’’, tb_start.sub(’’, table_string))

    #調用了pandas中的read_html方法,注意header=0,有些表格header不是0
    data = pd.read_html(last_str, flavor=“bs4”, header=0)[0]

    #這一步把‘產品代碼’這列轉為字符串,可能有None或者數字
    data[‘產品代碼’] = data[‘產品代碼’].apply(str)

    #打印data
    print(data)
    print(’-------------------’)

    #通過這個,你可以看到data有哪些列
    print(data.columns)

    實際上【鼠標點擊】組件的目的就是為了獲取網頁表格的 selector 而已,獲取后該組件就可以刪掉了

    運行結果如下:

    到此就成功獲取了當前網頁表格中的所有數據,我們想要刪除的 test120 的數據記錄也在其中

    需要注意,通過 pandas 讀取出來的數據都是 dataframe 類型的數據集

    3.4 過濾提取數據
    使用【數據過濾】組件,對剛剛獲取的 dataframe 類型變量 data 進行數據過濾,并返回給變量 data2
    37276cb9b78b4bf08d27f5fd19c6c80c_279E22E4D20E418D847B4D7FB6DCF5AA.png
    我們已經獲取到了產品代碼為 test120 的數據記錄

    3.5 獲取記錄的行編號
    #獲取行編號,這是一個數組list,如果有多個記錄,在list中就會有多個元素
    #如果index里有多個值,也就代表了多個記錄,可以使用循環遍歷操作,這里不做詳述,交給你們了
    print(data2.index)

    #獲取編號里的第一個元素單位
    print(data2.index[0])
    運行結果:

    說明該記錄在這里的 index 是 3

  • 找到記錄對應的按鈕并點擊
    4.1 找規律
    通過組件拾取獲得組件的 selector,并找到規律
    先拾取 test120 這條記錄對應的刪除按鈕

  • 獲取的 test120 這條記錄的 selector 如下

    ‘#boxTable > TBODY:nth-of-type(1) > TR:nth-of-type(5) > TD:nth-of-type(8) > A:nth-of-type(2) > B:nth-of-type(1)’
    我們再分別獲取前面 3 個記錄刪除按鈕的 selector,看看有什么規律可循

    #頁面第1??條記錄
    ‘#boxTable > TBODY:nth-of-type(1) > TR:nth-of-type(2) > TD:nth-of-type(8) > A:nth-of-type(2) > B:nth-of-type(1)’
    #頁面第2??條記錄
    ‘#boxTable > TBODY:nth-of-type(1) > TR:nth-of-type(3) > TD:nth-of-type(8) > A:nth-of-type(2) > B:nth-of-type(1)’
    #頁面第3??條記錄
    ‘#boxTable > TBODY:nth-of-type(1) > TR:nth-of-type(4) > TD:nth-of-type(8) > A:nth-of-type(2) > B:nth-of-type(1)’
    #test120記錄
    ‘#boxTable > TBODY:nth-of-type(1) > TR:nth-of-type(5) > TD:nth-of-type(8) > A:nth-of-type(2) > B:nth-of-type(1)’
    這下能發現出什么了么?

  • 這里你會發現TR:nth-of-type(3)里的數字是在變化的
  • 第一條記錄的TR:nth-of-type(2)里數字是 2,說明nth-of-type是以 2 為起始編號的
  • test120 在數據表格里的 index 是 3(3.5 章節)
    而對應的刪除按鈕的TR:nth-of-type(5)是 5
    那只要申明一個變量,變量的內容就是 index+2,用變量的方式替換TR:nth-of-type(5)里面寫死的值不就可以了么

    4.2 申明變量
    根據 4.1 章節中所得邏輯,先聲明一個變量 test,用于存放會變化的值

    #在設計器代碼窗口中,將鼠標拾取刪除按鈕的selector=后面的代碼復制過來,并賦值給test變量
    #可使用代碼塊組件進行變量的賦值
    test = r’#boxTable > TBODY:nth-of-type(1) > TR:nth-of-type(%d) > TD:nth-of-type(8) > A:nth-of-type(2) > B:nth-of-type(1)’%(data2.index[0] + 2)
    4.3 鼠標點擊刪除按鈕實現
    這一步也是最簡單的,只要將 test 變量直接填入【鼠標點擊】組件的查找路徑中即可

    至此,一個簡單的網頁表格中獲取數據,并點擊相應記錄后的按鈕操作就完成了。
    完整運行后的結果

    如果當前頁面有多條記錄需要做刪除操作,就需要使用循環來實現,這里就不說了,就交給各位同學去做了
    針對此場景,我們也會推出操作說明視頻及參考工程,不過最主要的還是要大家自己動手去學習是試。 ?

    總結

    以上是生活随笔為你收集整理的艺赛旗RPA 网页处理系列(四):网页表格中获取数据,并点击相应记录后的按钮操作说明总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。