PDI勺步骤中的HTML抓取(用户定义的java类)

时间:2014-08-28 18:51:41

标签: java regex pentaho data-integration

您正在使用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;
        }
    }

(我也在IDE中尝试将其作为没有PDI的纯Java)但我从来没有受到过打击。知道如何解决这个问题吗?或者是否有更快更容易的方法来获得我想要的块?

1 个答案:

答案 0 :(得分:1)

我做了类似你喜欢的过滤步骤

变换步骤:

  1. 使用字段&#34; dom&#34;生成行,键入字符串重要:限制应为1 // pentaho需要一个https-step字段,而不需要 以下步骤
  2. http-step,获取html-dump并设置一个字段名&#34; html&#34;或类似的东西(也许一个状态代码字段会很好) //检查数据是否存在
  3. 过滤步骤:http包含"<a href" //检查输出
  4. JavaScript-Step with your regex *,用你想要的输出定义一个新字段
  5. * for the regex