Web刮取产品详细信息,而不是UIPath中的列表/表

时间:2018-12-15 15:34:48

标签: web-scraping uipath

我遇到这样的情况,例如,我想在一个页面上刮擦公司的个人资料,其中具有20/30个不同的属性布局,将每个元素另存为列标题,然后通过目录进行分页并分别建立一个表页面作为一行,而列则是各个数据点(所有数据点在同一页面上,但在不同页面上是一致的)

现在,我一直在繁琐的复制文本和使用UI资源管理器查找元素的过程中,与屏幕抓取向导相比,这确实是一个痛苦。

例如,下面的

是指向测试中的配置文件的链接,页面上的标签都是不同的,但是如果我要抓取另一页,标签将是相同的,因此可以分页并创建一个非常有价值的表所有这些公司中。

https://www.owler.com/company/tesla

Ref:https://forum.uipath.com/t/web-scraping-for-details-not-a-list-table/68802

但这不是解决方案

2 个答案:

答案 0 :(得分:1)

根据文档,您可以抓取任何结构化数据。

https://studio.uipath.com/docs/about-data-scraping

由于owler中的数据是结构化的,唯一阻止您使用剪贴簿向导获取所有公司的信息的问题是无法指示下一步按钮 >在网页中导航到下一个项目。

因此,“在我看来”,您会以不同的方式解决这个问题。您可以尝试以下操作:

  1. 在excel文件或协调器队列中创建公司列表。
  2. 打开浏览器并登录(如有必要)
  3. 从excel或队列中读取数据。
  4. 遍历项目并逐项进行
  5. 通过添加baseURL导航到公司页面
    https://www.owler.com/company)的公司名称为
    excel行/队列事务,然后使用导航到活动(https://activities.uipath.com/docs/navigate-to)转到该页面。
  6. 使用具有固定元素的锚点基本活动(https://activities.uipath.com/docs/anchor-base)来获取所需的值。就像使用“年收入标签”作为获取年收入价值的锚点一样。如果您找到合适的锚点,即使样式发生更改,也可以为您提供更准确的结果。
  7. 将抓取的数据写入您的excel文件

如果您不知道从哪里开始,请看看https://github.com/UiPath/ReFrameWork,我认为这是一个很好的起点。

答案 1 :(得分:0)

由于数据不是标准数据表格式,因此您已经发现,提取数据表向导将无法在此处运行。就是说,由于数据出现在不同公司的同一位置,因此可以使用动态选择器。例如,Founded数据字段将始终位于此选择器包含的位置:

-<-ht​​ml app ='chrome.exe'title ='竞争对手,收入和员工-Owler Company Profil '/>

-<-webctrl css-selector ='body> div> div> div> div> div> div> div> div> div> div> div> div> div> p'isleaf ='1'tag ='P' parentclass ='right-block'idx ='1'/>

*请注意,我已将<标记替换为-<-以在Stack解释html时显示代码

,因此,页面可以更改为其他竞争者,但是“获取文本”活动中使用的相同选择器将产生与竞争者本身相对应的结果。

这将需要大量工作,因此最好评估这样做是否值得开发时间。如果您只是想熟悉该界面,我建议您使用一个更标准的数据表,该数据表将与向导配合使用,例如:https://editor.datatables.net/

这可能会不太令人兴奋,因为向导将充分执行。