网页中表格数据获取 (【鼠标点击】组件拾取, 目标属性中无 "查找路径")
最近碰到一个需求,从网页表格中获取查询到的所有数据,并将数据写入到 Excel 表格中,按照# 如何从 table 中取出数据 6.0 版本,使用【鼠标点击】组件拾取,发现目标属性中无 "查找路径",故找到了一种折中的方法,如下:
首先使用【获取文本】组件,获取到一个单元格的文本,“保存”,"编译" 后,组件定位到代码:
import time
from ubpa.ilog import ILog
from ubpa.base_img import *
import ubpa.ichrome_firefox as ichrome_firefox
class ShangQi:
def __init__(self):
self.__logger = ILog(__file__)
self.path = set_img_res_path(__file__)
def Main(self):
total_entry=None
table_list=None
nbr_index=None
list=None
txt=None
browser=None
img_path=None
# 获取文本
self.__logger.debug(' "StepNodeTag:1609415960514",Note:')
ichrome_firefox.get_element_val_chrome(attrMap={"tableCol":"2","tableRow":"3","tag":"TD"},index=0,tagName=r'TD',title=r'汽车金融',waitfor=10)
代码中只有 "tableCol" 和 "tableRow" 会随着拾取单元格的不同而变化
ichrome_firefox.get_element_val_chrome(attrMap={"tableCol":"2","tableRow":"3","tag":"TD"},index=0,tagName=r'TD',title=r'汽车金融',waitfor=10)
所以只要改变这两个属性后面的数字,就可以获取到不同单元格的文本数据。
在遇到的场景中,搜索结果的表格如下:
导入需要的库后,将原来【获取文本】组件的代码根据自己的业务需求转为全局函数:
import time
from ubpa.ilog import ILog
from ubpa.base_img import *
import ubpa.ichrome_firefox as ichrome_firefox
def get_table_data(self,total_entry,cyclic_count): # total_entry为总条目数;cyclic_count为循环判断条件
self.__logger = ILog(__file__)
self.path = set_img_res_path(__file__)
nbr_index=None
list=None
txt=None
browser=None
img_path=None
# 代码块
self.__logger.debug(' "StepNodeTag:1609442830016",Note:')
table_list = []
#最后一页的行数
if total_entry // 10 == count:
entry = total_entry % 10 + 2
# 其余每页为10行
else:
entry = 12
for rownbr in range(2,entry):
row_list = []
for colnbr in range(1,15):
#因为在拾取第一行时(表头除外,序号为"1"的行)没有属性"tableRow",所以进行了判断。
if rownbr == 2:
table_txt = ichrome_firefox.get_element_val_chrome(attrMap={"tableCol":str(colnbr),"tag":"TD"},index=1,tagName=r'TD',title=r'汽车金融',waitfor=10)
else:
table_txt = ichrome_firefox.get_element_val_chrome(attrMap={"tableCol":str(colnbr),"tableRow":str(rownbr),"tag":"TD"},index=0,tagName=r'TD',title=r'汽车金融',waitfor=10)
row_list.append(table_txt)
table_list.append(row_list)
print(table_list)
return table_list
最后生成的表格数据如下:
此方法相对笨拙,希望各位有经验的大神提供更好的解决办法。
那暂时没有简单的办法啦 😨
林总,他们这个网站只可以 Google 访问,IE 访问不了
网站连接
使用 ie,就可以照着例子帖子做了