[发明专利]一种面向推荐平台的RPA数据采集方法有效
申请号: | 202111359478.X | 申请日: | 2021-11-17 |
公开(公告)号: | CN114168832B | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 黄震;金持;窦勇;赖志权;李东升;汪昌健 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/9535 |
代理公司: | 湖南企企卫知识产权代理有限公司 43257 | 代理人: | 任合明 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 推荐 平台 rpa 数据 采集 方法 | ||
1.一种面向推荐平台的RPA数据采集方法,其特征在于包括以下步骤:
第一步,构建面向推荐平台的RPA数据采集系统;该系统由客户端、数据整编模块、推文采集模块、模板匹配模块、博主采集模块、流程日志E、目标数据池A以及主题标签数据池S构成;
客户端与数据整编模块、主题标签数据池S相连;客户端将用户编辑的数据采集路径P和数据存储格式F发送至数据整编模块,并根据用户编辑的主题关键词库K及流程需要的界面元素准备主题标签,将主题标签存贮到主题标签数据池S;主题标签分为两种,一种为主题关键词库K中所有关键词元素的图像,一种为流程需要的界面元素的图像;主题关键词库K指待采集数据的主题,界面元素指在流程中所涉及到的按钮或图标;数据采集路径P指当采集到目标数据后,存放目标数据的路径位置;数据存储格式F指对采集到的目标数据进行统一整编的格式要求;
主题标签数据池S与客户端、模板匹配模块相连;主题标签数据池S以文档的形式存在,从客户端接收主题标签,对主题标签进行存储;
模板匹配模块与主题标签数据池S、推文采集模块、博主采集模块相连;模板匹配模块是一个模板匹配模型,当从推文采集模块或博主采集模块接收到定位元素xx指令时,xx为主题标签数据池S中的任一界面元素,截取推荐平台界面的图像作为目标图像I,读取S中的xx元素作为模板图片T,在I上对T进行定位;若定位成功,模板匹配模块发送T的坐标信息至推文采集模块或博主采集模块;若定位失败,则说明I内没有T;模板匹配模块发送定位结果至推文采集模块或博主采集模块;将定位操作的I、T、定位结果存入流程日志E;若定位成功,定位结果即为元素xx在I中的坐标信息,若定位失败,定位结果即为定位失败的信息;
当从推文采集模块或博主采集模块接收到筛选主题关键词指令时,模板匹配模块对推荐平台的界面进行实时截图,截取推荐平台界面的图像作为第一目标图像I1,对I1上第n个博主的名称及简介进行S中主题关键词的筛选,若筛选成功,筛选结果为“I1筛选到了关键词”若筛选失败,筛选结果为“I1未筛选到关键词”,将筛选结果发送至推文采集模块或博主采集模块;
当从推文采集模块或博主采集模块接收到筛选主题关键词指令时,模板匹配模块对S中的关键词元素依次筛选;即截取推荐平台界面的图像作为目标图像I′,依次读取S中关键词元素作为模板图片T′,在I′上对T′进行定位;若定位成功,则说明I′所属界面的博主携带了T′对应的关键词元素,为K领域内博主,筛选结果为“I′筛选到了关键词”;若定位失败,则说明I′不存在T′,该博主不为K领域内的博主,筛选结果为“T′未筛选到关键词”;将筛选结果发送至推文采集模块或博主采集模块;
流程日志E负责存储每次模板匹配模块执行的结果;
博主采集模块与模板匹配模块、推文采集模块相连;博主采集模块是一个筛选、关注主题关键词库K领域内博主的流程模型,根据是否存在未关注博主构建关注列表,并对关注列表进行扩充;当需要对界面元素定位时,博主采集模块将定位元素xx指令发送至模板采集模块,根据从模板匹配模块得到的定位结果,控制鼠标执行下一步动作;当需要对主题关键词筛选时,博主采集模块将筛选主题关键词指令发送至模板采集模块,根据从模板采集模块得到的筛选结果,控制鼠标执行下一步动作;当关注列表中不存在K领域的博主时,向推文采集模块发送“任务结束”信号;
推文采集模块与模板匹配模块、数据整编模块、博主采集模块相连;推文采集模块是一个筛选、采集文字推文的流程模型;推文采集模块接收到博主采集模块发送的“任务结束”信号后,开始执行工作;推文采集模块按关注列表的顺序依次进入博主的推文界面,将推荐平台中的原始数据写入剪切板并向数据整编模块发送读取指令;当需要对界面元素进行定位时,推文采集模块将定位元素xx指令发送至模板采集模块,根据从模板匹配模块得到的定位结果,控制鼠标执行下一步动作;当需要对主题关键词筛选时,推文采集模块将筛选主题关键词指令发送至模板匹配模块,根据从模板匹配模块得到的筛选结果,控制鼠标执行下一步动作;实现将关注列表中全部博主的所有文字推文存入剪切板,并向数据整编模块发送读取指令;
数据整编模块与客户端、推文采集模块、目标数据池A相连;数据整编模块接收到客户端发送的数据采集路径P、数据存储格式F后进行初始化;当接收到推文采集模块发来的读取指令后,读取剪切板中的原始数据α,按照数据存储格式F将α整编为目标数据α1,将α1按照数据采集路径P保存至目标数据池A;
目标数据池A为存储目标数据α1;
第二步,客户端将数据采集路径P、数据存储格式F发送至数据整编模块,并根据用户编辑的主题关键词库K及流程需要的界面元素准备主题标签,主题关键词库K共NN个元素,NN为正整数;
第三步,用户依据K构建主题关键词数据池S,令S中共MM个元素,MM=NN+NM,当i∈[1,NN]时,Si为主题关键词,当i∈[NN+1,MM]是,Si为界面元素;
第四步,博主采集模块利用win32gui.FindWindow工具获取推荐平台的句柄,将推荐平台的窗口设置为最前窗口;
第五步,博主采集模块筛选并关注主题关键词库K内的博主,根据推荐平台的实时界面是否存在未关注博主构建推荐平台账号的关注列表List_1,方法为:
5.1令循环变量f=1,初始化List_1中最终博主数FF=0,初始化关注列表List_1为空;
5.2博主采集模块向模板匹配模块发送定位“关注”按钮指令,此时元素x x为“关注”按钮;
5.3模板匹配模块利用pyautogui.screenshot工具截取推荐平台上第n个未关注博主的博主名片作为目标图像,记为I;
5.4模板匹配模块读取主题标签数据池S中的“关注”.jpg图像,作为模板图像,记为T;
5.5模板匹配模块接收定位“关注”按钮指令,采用模板匹配定位法对T在I上进行定位,若定位成功,则得到模板图像T在目标图像I上的位置坐标和T在I上的数量num,若定位失败,则得到定位失败的结果,方法为:
5.5.1利用numpy.shape[]函数获得I的宽、高,分别记为wI,hI;
5.5.2利用numpy.shape[]获得T的宽、高,记为wT,hT;
5.5.3将I与T的重叠区域令为区域Z;
5.5.4模板匹配模块采用相似度矩阵计算方法计算T与I的相似度矩阵M,M的规模为[wI-wT,hI-hT],即wI-wT列,hI-hT行;
5.5.5模板匹配模块采用目标定位方法根据M计算I中的目标个数及坐标位置,得到目标个数num及num个目标中心点在I中的坐标:设置阈值R为0.75-0.90之间,若M中有num个大于R的值,则将第n个大于R的值对应的I中的点记为(r1n,r2n),并将该点作为目标区域的左上角,则第n个目标区域的中心点坐标为即为第n个目标所在位置;此时I中存在num个T,num为I中的目标个数,n为整数且1≤n≤num;
5.5.6模板匹配模块将定位到的目标个数num及num个目标所在位置的坐标信息发送给博主采集模块,将T、I、num个目标所在位置的坐标信息保存至E,转5.6;若M中没有大于R的值,则说明未定位到目标,说明定位失败,将“定位失败”消息发送至博主采集模块,将T、I、定位失败结果保存至E,转5.6;
5.6若博主采集模块从模板匹配模块收到目标所在位置坐标信息,转步骤5.7;若博主采集模块接收到定位失败消息,则令f=0,即关注列表中不存在未关注博主,转第六步;
5.7令目标循环变量n=1;
5.8博主采集模块向模板匹配模块发送筛选主题关键词的指令;
5.9模板匹配模块利用pyautogui.screenshot工具截取推荐平台上第n个未关注博主所在的实时界面,作为第一目标图像I1;
5.10模板匹配模块接收到筛选主题关键词的指令,采用模板匹配筛选法,对I1上第n个博主的名称及简介进行S中主题关键词的筛选,若筛选成功,则I1的名称及简介中含有S中某个主题关键词Si,筛选结果为“I1筛选到了关键词”,并得到第一目标个数num1及num1个目标中心点在I1中的坐标,将T1、I1、T1在I1上的坐标信息保存至E,转5.11;若筛选失败,说明I1的名称及简介中不含有S中任何主题关键词,筛选结果为“I1未筛选到关键词”,转步骤5.13;
5.11博主采集模块采用PyWinAuto和PyAutoGui两个工具实现对鼠标的自动化控制,控制鼠标移动至第n个目标的坐标处,执行点击操作,即点击“关注”按钮,将该博主添加至推荐平台账号的关注列表List_1中,即令List_1[f]存储博主标号;令f=f+1,令FF=f,转步骤5.12;
5.12令n=n+1,若n≤num,转步骤5.10;若n>num,转步骤5.2;
5.13博主采集模块向模板匹配模块发送定位“关闭”按钮指令;
5.14模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第二目标图像I2,模板匹配模块读取S的界面元素“关闭”按钮作为第二模板图像T2,模板匹配模块采用5.5步所述模板匹配定位法对T2在I2上进行定位,得到T2在I2上的数量num2及num2个T2在I2上的坐标信息,且num2=1,模板匹配模块将T2在I2上的坐标信息及数量num2发送至博主采集模块,将T2、I2、T2在I2上的坐标信息记录到E,令n=n+1,若n≤num,转步骤5.8;若n>num,转步骤5.2;
第六步,博主采集模块对List_1中的博主标号进行遍历,从List_1筛选出K领域内的博主进行关注,扩充关注列表List_1,并向推文采集模块发送任务结束信息,转第七步;
第七步,推文采集模块将List_1中博主的推文作为原始数据存储至剪切板中,数据整编模块从剪切板中读取原始数据,并将推荐平台中的推文按需求整编,采集至目标数据池A,方法为:
7.1推文采集模块从博主采集模块接收任务结束信息;
7.2令循环变量f=1;
7.3博主采集模块通过PyWinAuto和PyAutoGui工具控制鼠标点击博主头像,进入关注列表List_1[f]的推文界面;
7.4进入List_1[f]的推文界面,推文采集模块向模板匹配模块发送定位小头像指令;小头像指每条推文中带有一个大小为27×27像素的位置不固定的图像;
7.5模板匹配模块利用pyautogui.screenshot工具截取List_1[f]的推文界面图像作为第九目标图像I9,模板匹配模块截取60×60像素的博主头像图像,并调整至原本的0.45倍,得到27×27xp大小的头像图作为第九模板图像T9;模板匹配模块采用5.5步所述模板匹配定位法对T9在I9上进行定位,得到T9在I9上的数量num9及num9个T9在I9上的坐标信息,其中第n9个T9在I9上的坐标为n9∈[1,num9];若定位成功,模板匹配模块将T9在I9上的坐标信息及数量num9发送至博主采集模块,将T9、I9、T9在I9上的坐标信息记录到E,转步骤7.6;若定位失败,将T9在I9上定位失败的结果发送至博主采集模块,将T9、I9、T9在I9上定位失败的结果记录到E,转步骤7.28;
7.6令循环变量n9=1;
7.7博主采集模块控制鼠标移动至进行点击操作,进入第n9篇推文的详细内容界面;
7.8博主采集模块向模板匹配模块发送定位“图片推文特征”的指令;
7.9模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台第n9篇推文的界面作为第十目标图像I10,模板匹配模块读取S的界面元素“图片推文特征”作为第十模板图像T10,模板匹配模块采用5.5步所述模板匹配定位法对T10在I10上进行定位,若定位成功,说明此推文为图片推文,得到T10在I10上的第十目标数量num10及num10个T10在I10上的坐标信息,模板匹配模块将T10在I10上的坐标信息及num10发送至博主采集模块,将T10、I10、T10在I10上的坐标信息记录到E,转步骤7.21,否则,说明此推文不是图片推文,将T10、I10、T10在I10上定位失败信息记录至E,转步骤7.10;
7.10模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第十一目标图像I11,模板匹配模块读取S的界面元素“视频推文特征”作为第十一模板图像T11,模板匹配模块采用5.5步所述模板匹配定位法对T11在I11上进行定位,若定位成功,说明此推文为视频推文,得到T11在I11上的第十一目标数量num11及num11个T11在I11上的坐标信息,模板匹配模块将T11在I11上的坐标信息及数量num11发送至博主采集模块,将T11、I11、T11在I11上的坐标信息记录到E,转步骤7.21,否则说明此推文为文字推文,将T11、I11、T11在I11上定位失败信息记录至E,转步骤7.11;
7.11推文采集模块通过PyWinAuto和PyAutoGui工具控制鼠标自动移至文本位置,执行长按操作至界面上出现“全选”、“复制”两个按钮;
7.12推文采集模块向模板匹配模块发送定位“全选”按钮指令;
7.13模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第十二目标图像I12,通过模板匹配模块读取S的界面元素“全选”按钮作为第十二模板图像T12,模板匹配模块采用5.5步所述模板匹配定位法对T12在I12上进行定位,得到T12在I12上的数量num12及num12个T12在I12上的坐标信息,因页面必然存在一个“全选”按钮,且num12=1;模板匹配模块将T12在I12上的坐标信息及数量num12发送至博主采集模块,将T12、I12、T12在I12上的坐标信息记录到E,转步骤7.14;
7.14推文采集模块控制鼠标移动至“全选”按钮坐标位置,执行点击操作;
7.15推文采集模块向模板匹配模块发送定位“复制”按钮指令;
7.16模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第十三目标图像I13,通过模板匹配模块读取S的界面元素“复制”按钮作为第十三模板图像T13,模板匹配模块采用5.5步所述模板匹配定位法对T13在I13上进行定位,得到T13在I13上的第十三目标数量num13及num13个T13在I13上的坐标信息,因页面必然存在一个“复制”按钮,且num13=1;模板匹配模块将T13在I13上的坐标信息及数量num13发送至博主采集模块,将T13、I13、T13在I13上的坐标信息记录到E,转步骤7.17;
7.17推文采集模块控制鼠标移动至“复制”按钮坐标位置,执行点击操,将文字推文的全部内容进行复制操作,即将原始数据α写入剪切板;
7.18推文采集模块向数据整编模块发送读取指令;
7.19数据整编模块读取剪切板信息,依据数据存储格式F将原始数据α进行格式整编,形成目标数据α1;
7.20数据整编模块将目标数据α1依照采集路径P,存储至采集路径P下的目标数据池A中;
7.21推文采集模块向模板匹配模块发送定位“返回_2”按钮的指令;
7.22模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第十四目标图像I14,模板匹配模块读取S的界面元素“返回_2”按钮作为第十四模板图像T14,模板匹配模块采用5.5步所述模板匹配定位法对T14在I14上进行定位,得到T14在I14上的第十四目标数量num14及num14个T14在I14上的坐标信息,且num14=1;模板匹配模块将T14在114上的坐标信息及数量num14发送至博主采集模块,将T14、I14、T14在I14上的坐标信息记录到E,转步骤7.23;
7.23推文采集模块控制鼠标移动,点击“返回_2”按钮,令n9=n9+1,若n9≤num9,转步骤7.7,否则转步骤7.24;
7.24推文采集模块向模板匹配模块发送定位“无更多推文”图标的指令;
7.25模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第十五目标图像I15,通过模板匹配模块读取S的界面元素“无更多推文”图标作为第十五模板图像T15,模板匹配模块采用5.5步所述模板匹配定位法对T15在I15上进行定位,得到T15在I15上的第十五目标数量num15及num15个T15在I15上的坐标信息;若定位成功,模板匹配模块将T15在I15上的坐标信息及数量num15发送至博主采集模块,且num15=1,将T15、I15、T15在I15上的坐标信息记录到E,转步骤7.27,若定位失败,将T15在I15上定位失败的结果发送至博主采集模块,将T15、I15、T15在I15上定位失败的结果记录到E,转步骤7.26;
7.26推文采集模块此时接收到定位失败的结果,通过PyWinAuto和PyAuto Gui工具控制鼠标拖拽,进行自动翻页操作,转步骤7.3;
7.27推文采集模块此时接收到“无更多推文”所在位置的坐标信息;
7.28推文采集模块向模板匹配模块发送定位“返回_3”按钮的指令;
7.29模板匹配模块利用pyautogui.screenshot工具截取实时推荐平台界面图像作为第十六目标图像I16,通过模板匹配模块读取S的界面元素“返回_3”按钮作为第十六模板图像T16,模板匹配模块采用5.5步所述模板匹配定位法对T16在I16上进行定位,得到T16在I16上的第十六目标数量hum16及num16个T16在I16上的坐标信息,因页面必然存在一个“返回_3”按钮,因此不存在定位失败的情况,且hum16=1;模板匹配模块将T16在I16上的坐标信息及num16发送至博主采集模块,将T16、I16、T16在I16上的坐标信息记录到E;
7.30推文采集模块控制鼠标移动,点击“返回_3”按钮,令f=f+1,若f≤FF,转至步骤7.3,否则转第八步;
第八步,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111359478.X/1.html,转载请声明来源钻瓜专利网。