网络自动化脚本的爬虫制造技术

技术编号:32508121 阅读:16 留言:0更新日期:2022-03-02 10:43
对于指定要对网站执行的任务的给定输入查询,在不具有关于该网站或该查询的任何先前知识的情况下,对正确的动作序列(或UI脚本)进行机器学习。为了学习正确的UI脚本,创建任务代理,该任务代理执行多个任务代理运行,包括对网站上的UI元素(例如,按钮、文本域、菜单等)的不同动作序列。在执行对UI元素的每一个动作后监视网页的状态。创建小任务,这些小任务包括对于每一个任务代理所执行的动作序列以及分配给小任务的分数,并且基于分数来从这些小任务中选择正确的UI脚本(例如,具有最高分数的小任务)。的小任务)。的小任务)。

【技术实现步骤摘要】
【国外来华专利技术】网络自动化脚本的爬虫

技术介绍

[0001]当今,网络爬行涉及对网页上的文本和实体的语义和关键字分析。虽然在尝试理解文本语义时是有效的,但语义学习在尝试理解构建到当今网站中的动作时并不有效。例如,用于租车的网页可能需要用户通过输入文本(例如,姓名、到达机场、生日等)来填写在线表单以进行预定。常规的网络爬虫无法始终通过简单地分析表单文本来理解预定车辆的动作。网络爬虫而是必须通过对该网站的其余部分进行语义分析来认识到提供该网页的公司租赁车辆。
[0002]理解网页上的动作对于许多操作而言是至关重要的。数字助理(诸如由总部在美国华盛顿州雷蒙德市的微软公司开发的)正变得更老练并且能够理解用户何时想要执行不同的动作(例如,预订晚餐、预订航班、订披萨,等等),而不是仅仅检索信息。用户可能希望通过支持同一任务(例如,订披萨)的许多网站之一(例如,餐厅A、B或C)来执行该任务。此外,机器人流程自动化(RPA)和物联网(IoT)自动化要求设备不仅要捕获数据,而且还要在没有用户干预的情况下执行动作。随着越来越多的应用移至网络上,它们的动作必须在语义学习提供的范围之外加以理解。
[0003]在网络上执行动作大部分通过UI脚本来控制,这些UI脚本是计算机对象,这些计算机对象使用可执行脚本语言来创建以执行与网页的动态交互(例如,点击、文本输入、滚动等)。具有标准标记语言对象(例如,超文本标记语言(HTML)或可扩展标记语言(XML))的传统网页大部分是静态文档。UI脚本在网页中执行动态动作,诸如输入购买信息字段、输入用户名、指定预定的具体日期、或输入特定街道地址。因此,网络脚本被频繁地用来通过编程驱动网站的UI以执行人工任务。
[0004]当今,生成并维护UI脚本是极度费时的。编写UI脚本涉及检查网页的DOM树以标识所有相关UI元素(例如,文本域、日期选择器、地图等)。一些软件自动化工具通过提供“记录和回放”接口来简化该过程。常规自动化工具可生成用于以下操作的UI脚本:通过在网站上选择每日预约、选择特定医学专家、查找开放时间和日期、以及选择设施位置来在网页上预订医疗预约。这些任务中的每一者必须被记录,这是非常乏味且需要人工交互。
[0005]尝试自动化跨需要不同网络脚本的众多不同网站的任务是资源密集的。再加上网站不断更新使得传统的记录和回放自动化工具在没有对此类脚本进行过多重复的网络爬行、测试和记录的情况下不足以对网站支持的行为进行建模,并且当前工具不足以在当今数字助理和网络自动化应用所需的水平上理解网络上的动作变得相当明显。

技术实现思路

[0006]参考下文列出的附图,在下文详细描述所揭示的示例。提供以下
技术实现思路
以解说本文所公开的一些示例。然而,这并不意味着将所有示例限制于任何特定配置或操作顺序。
[0007]本文公开的实施例涉及使用机器学习来生成用于请求在特定网站上执行特定任务的查询的正确UI脚本的过程和软件工具。所有这一仅切需输入查询以及网站的URL,并且所公开的实施例能够学习最有可能的动作序列以应答该查询。为此,创建任务代理以便对
UI元素执行不同的序列动作(在此被称为“任务代理运行”)。例如,任务代理运行可点击UI按钮,在文本域中输入文本,挑选日期,点击下拉菜单,或者与网页上的任何可操作项交互。每一次任务代理运行执行网页上的UI元素的不同组合,并且在UI元素上的每一个动作后,分析网页的状态以确定该动作是正面地还是负面地推进网页应答该查询。分数被分配给任务代理运行,并且分数基于网页在采取动作后的新状态来按奖励增加或减少。对于所执行的每一个UI元素,更新任务代理的分数的奖励基于以下各项来分配:正被执行的UI元素的位置、UI元素相对于与网页的先前UI交互的位置、以及网页的新状态上的内容与查询文本之间的相似度。另外,奖励可基于所执行的动作或网页状态来加权。由每一次任务代理运行执行的动作序列以及对应分数被采集并存储为“小任务(tasklet)”并且这些小任务之一基于分数(例如,具有最高分数的小任务)来被选为对该查询的应答UI脚本。该应答UI脚本然后可用于各种用途,诸如自动执行用户的任务、业务过程、IoT设备等;出于搜索目的构建动作的知识库;测试网站功能性;或者大量其他用途。
附图说明
[0008]参考下文列出的附图,在下文详细描述所公开的示例:
[0009]图1是根据所公开的实施例中的某一些的用于学习小任务的技术的框图,该小任务用于在网站上执行动作序列以应答查询。
[0010]图2是阐示根据所公开的实施例中的某一些的用于发起小任务生成的客户端计算设备的框图。
[0011]图3是阐示根据所公开的实施例中的某一些的用于促成小任务生成的联网环境的框图。
[0012]图4是阐示根据所公开的实施例中的某一些的UI窗口序列的用户界面(UI)图,该UI窗口序列示出小任务正被创建以应答对网站上的动作的查询。
[0013]图5是阐示根据所公开的实施例中的某一些的小任务的相关评分细节的UI图。
[0014]图6是根据所公开的实施例中的某一些的用于学习正确UI脚本以应答输入查询的工作流的流程图。
[0015]图7是阐示根据所公开的实施例中的某一些的用于为任务代理运行评分的工作流的流程图。
具体实施方式
[0016]将参考附图详细描述各种实施例。在任何可能的地方,相同的附图标记将被用于跨附图指代相同或相似的部件。贯穿本公开的关于具体示例和实现的参考仅出于说明目的而提供,除非相反指示,否则不意味着限制所有示例。
[0017]一般而言,本文公开的实施例和示例聚焦于生成用于网站的UI脚本以学习用于应答输入查询的正确动作的自动化方法。所公开的实施例只需两个输入:(1)描述任务的用户查询(例如,自然语言查询)以及(2)要爬行的网站的统一资源定位符(URL)。只使用这两个输入来创建任务代理,该任务代理在不同的执行实例中访问网站并与该网站上的UI元素交互,这意味着单个任务代理执行与网站上的UI元素的不同交互序列和参与。
[0018]为了清楚起见,本公开将这些不同序列称为“任务代理运行”。任务代理运行是由
任务代理对网页的UI元素执行的不同动作序列。例如,一次任务代理运行可包括任务代理执行以下动作:导航到用于预订酒店的网页、挑选日期、输入姓名、选择酒店、挑选房型、以及点击提交按钮。另一次任务代理运行可包括任务代理执行以下动作:导航到用于预订酒店的网页、点击联系链接、在电子邮件请求文本域中输入文本、以及点击发送按钮。存在大量不同序列并且这些序列不必在此穷尽地讨论。为了清楚起见,任务代理运行表示由任务代理对网页的UI元素执行的不同动作序列。
[0019]为代理的每一次执行分配运行分数,为参与不同UI元素后网站相对于用户查询的不同状态评分。例如,对于驱动网站更接近完成用户查询任务的动作,可以为任务代理运行评正分,或者对于驱动网站更远离完成任务(例如,导航至完全不相关的网页)的动作,可以为任务代理运行评负分。所执行的所有动作序列然后可基于其分数来排名以标识哪一个表本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于构建用以在网站上执行由查询描述的任务的UI脚本的方法,所述方法包括:接收所述查询以及所述网站的统一资源定位符(URL),所述查询指定要执行的任务并且所述网站包括具有UI元素的一个或多个网页;创建用以执行任务代理运行的任务代理,所述任务代理运行包括所述一个或多个网页中的UI元素的不同动作序列;分析所述网页在执行在所述任务代理运行中执行的UI元素的每个动作后的状态;基于所述网页在执行所述UI元素的动作后的状态来向所述任务代理运行分配分数;以及基于所述任务代理运行的所分配的分数来生成用于执行由所述查询描述的所述任务的所述UI脚本。2.如权利要求1所述的方法,其中所述查询是自然语言查询。3.如权利要求1所述的方法,其中所述查询由用户通过客户端计算设备上的数字助理来提交。4.如权利要求1所述的方法,其中所述基于所分配的分数来生成用于执行由所述查询描述的所述任务的所述UI脚本包括:从所述任务代理运行中生成小任务,所述小任务包括由所述任务代理运行对所述UI元素执行的动作序列;将所述任务代理运行的分数分配给所述小任务;基于所述分数来从所述小任务中选择应答小任务;以及将所述应答小任务存储为所述UI脚本。5.如权利要求1所述的方法,其中所述分数基于执行动作后的所述一个或多个网页中的文本相对于所述查询中的文本的相似度来分配给所述任务代理运行。6.如权利要求1所述的方法,其中所述分数基于所执行的UI元素相对于所述一个或多个网页中的另一UI元素的动作局部性来分配给所述任务代理运行。7.如权利要求1所述的方法,其中所述分数基于所执行的UI元素相对于所述一个或多个网页中的先前执行的UI元素的动作方向性来分配给所述任务代理运行。8.如权利要求1所述的方法,其中所述查询由开发者通过用于客户端计算设备上的过程自动化的工具来提交。9.如权利要求8所述的方法,进一步包括:分析所述查询的语义;识别所述查询的文本;将参数分配给所述查询的经识别文本;以及使用所分配的参数来参与所述UI元素中的至少一者。10.如权利要求1所述的方法,进一步包括由物联网(IoT)设备或机器人来执行所述UI脚本。11.如权利要求1所述的方法,进一步包括将所述任务代理训练成主任务代理。12.如权利要求11所述的方法,进一步包括将所述任务代理训练成与附加子任务代理交互以执行所述任务代理运行的各部分。
13.如权利要求11所述的方法,其中所述分数分配基于所述UI元素的动作中的至少一者来加权的奖励。14.一种用于构建用以应答对网站的查询的UI脚本的计算设备,所述计算设备包括:包含有用于生成任务代理的指令的存储器,所述任务代...

【专利技术属性】
技术研发人员:O
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1