“Process Documents from Web”没有得到任何结果
我试图通过使用“从web处理文档”操作符在URL上执行网页抓取,并使用“提取信息”操作符设置了xpath查询。我已经在google电子表格“importxml”函数中测试了xpath查询,它似乎工作得很好。但是,当我在rapidminer中运行该进程时,它没有返回任何结果。
原因是什么呢?
如果有人能帮我,我会很感激的
我的xml代码:
原因是什么呢?
如果有人能帮我,我会很感激的
![:smile: 微笑:](http://www.turtlecreekpls.com/community/resources/emoji/smile.png)
我的xml代码:
<?xml version="1.0" encoding="UTF-8"?><进程版本="9.8.001"><参数key="logverbosity" value="init"/> <参数key="random_seed" value="2001"/> <参数key="send_mail" value="never"/> <参数key="notification_email" value="30"/> <参数key="encoding" value="SYSTEM"/> <进程expanded="true"> https://en.wikipedia.org/wiki/List_of_Running_Man_episodes_ (2020)"/>
@ id =和quot; mw_content -text"]/div[1]/table[2]/tbody/tr[2]/td[2]/i"/>
0
最佳答案
-
kayman 成员职位:662
独角兽
是的,由于名称空间的关系,这有点棘手。Rapidminer默认需要h:来定义(x)html命名空间。名称空间是使xml过于复杂的必要条件。
因此正确的语法应该是这样的:
/ / * [@ id = " JSID_cwCompanyNews "] / h: div / h: div / h: div / h: div [1] / h: ul / h:李[1]/ h:跨度/ h:跨度[1]/ h:跨越[2]/ h: / text ()
注意每个元素前面的h:,这允许rapidminer正确解析,因为现在它知道它正在处理html。我还添加了text()操作符,现在它返回了
22个月,3个月,3个月,3个月
作为标题属性。为了实现这一点,您需要将文档转换为示例集。
请注意,如果您要使用正确解析的xhtml,则可以绕过名称空间问题,然后您可以禁用“假设html”选项并以“简单的方式”使用xpath。你的网站不是正确的xhtml,所以为了达到这一点,你必须首先使用html到xml转换器,以确保它是可解析的,然后删除名称空间。您可以使用regex来完成此操作,该regex只是替换标记之前的所有内容,因为这是名称空间所在的位置。
例如(?s)^.*?用代替。现在没有更多的名称空间,所以您可以使用“标准”符号。Googledocs在幕后为您完成了这些工作,这对于html来说很好,但对于任何其他XML来说都是不可用的,这就是RM提供更多选择的地方。 1
答案
由于只需要获取一个页面,因此最好使用get_page操作符,然后使用提取信息来获取xpath。
我试过使用get页面跟着提取信息,但这似乎没有返回任何结果,以及。
我的xml: