“Process Documents from Web”没有得到任何结果

RionArisuRionArisu 成员职位:13贡献我
我试图通过使用“从web处理文档”操作符在URL上执行网页抓取,并使用“提取信息”操作符设置了xpath查询。我已经在google电子表格“importxml”函数中测试了xpath查询,它似乎工作得很好。但是,当我在rapidminer中运行该进程时,它没有返回任何结果。

原因是什么呢?
如果有人能帮我,我会很感激的微笑:

我的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"/>                   


最佳答案

  • kaymankayman 成员职位:662独角兽
    2021年1月编辑 解决方案接受
    是的,由于名称空间的关系,这有点棘手。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提供更多选择的地方。
    RionArisu

答案

  • kaymankayman 成员职位:662独角兽
    据我所知,你没有设置任何爬行规则,因此它实际上没有做任何事情。
    由于只需要获取一个页面,因此最好使用get_page操作符,然后使用提取信息来获取xpath。
  • RionArisuRionArisu 成员职位:13贡献我
    谢谢,我会试着弄清楚爬行的规则。
    我试过使用get页面跟着提取信息,但这似乎没有返回任何结果,以及。

    我的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://www.nikkei.com/nkd/company/news/?scode=7203&ba=1&DisplayType=1"/> <参数key="random_user_agent" value="false"/> <参数key="connection_timeout" value="10000"/> <参数key="read_timeout" value="10000"/> <参数key="follow_redirects" value="true"/> <参数key="accept_cookies" value="none"/> <参数key="cookie_scope" value="global"/> <参数key="request_method" value="GET"/> <列表key="query_parameters"/> <列表key="request_properties"/> <参数key="override_encoding" value="false"/> <参数key="encoding" value="SYSTEM"/>          @ id =和";JSID_cwCompanyNews"]/div/div/div/div[1]/ul/li[1]/span/span[1]/span[2]/a"/>              


  • RionArisuRionArisu 成员职位:13贡献我
    非常感谢,这解决了我的问题
    kayman
登录注册置评。