【问题标题】:HTML scraping in PDI spoon step (user defined java class)PDI 勺步骤中的 HTML 抓取(用户定义的 java 类)
【发布时间】:2014-08-28 18:51:40
【问题描述】:

您好,我正在使用HTTP Client 步骤获取网站的源代码。我需要刮掉一行的特定部分。

示例行:<a href="....." ......>TEXT I WANT</a>

所以我想我会在 PDI 中使用 UDJC 并首先使用 String[] lines = code.split("\n+"); 将文本块拆分为行,然后循环遍历数组并使用 if 条件(即正则表达式检查)查看我是否有正确的行。

for(String line : lines){
        if line.matches(".*a href.*"){
            String outputString = code;
            break;
        }
    }

(我也在作为没有 PDI 的纯 java 在 IDE 中尝试这样做)但我从来没有受到打击。知道如何解决这个问题吗?或者有没有更快更简单的方法来获取我想要的块?

【问题讨论】:

  • 如果您的特定 <a> 标记以某种方式可识别,我建议解析为 XML 并使用 XPath 来查找它。

标签: java regex pentaho data-integration


【解决方案1】:

我在类似的情况下使用过滤步骤做一些你想做的事情

转换步骤:

  1. 使用字段“dom”生成行,键入字符串重要提示:限制应为 1 // pentaho 需要一个用于 https-step 的字段,在 以下步骤
  2. http-step,获取 html-dump 并为其设置一个字段名“html”或类似的名称(也许状态码字段会很好) // 检查是否有数据的预览
  3. 过滤步骤:http 包括"<a href" // 检查输出
  4. JavaScript-Step 使用您的正则表达式*,使用您想要的输出定义一个新字段

* for the regex

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多