Соскребание HTML в шаге ложки PDI (пользовательский класс Java)

1

Привет, я использую шаг HTTP Client чтобы получить исходный код веб-сайта. Мне нужно очистить определенную часть одной линии.

Пример строки: <a href="....."......>TEXT я WANT</a>

поэтому я решил, что буду использовать UDJC в PDI и сначала разбить текстовый блок на строки со String[] lines = code.split("\n+"); а затем цикл через массив и с условием if (т.е. проверка регулярного выражения), посмотрите, есть ли у меня правильная линия.

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

(Я пытаюсь это также в среде IDE, как чистая Java без PDI). Я никогда не получаю удар. Любая идея, как это исправить? Или есть более быстрый и простой способ получить кусок, который я хочу?

  • 0
    если ваш конкретный тег <a> можно идентифицировать каким-либо образом, я бы предложил выполнить синтаксический анализ в формате XML и использовать XPath для его поиска.
Теги:
pentaho
data-integration

1 ответ

1
Лучший ответ

Я делаю что-то вроде того, что вы хотите в аналогичном случае с фильтром-шагом

Transformation-шаги:

  1. генерировать строку с полем "dom", тип string ВАЖНО: Предел должен быть 1//пентахо нужно поле для https-шага, которое не требуется на следующих шагах
  2. http-step, получить html-дамп и задать поле "html" или что-то в этом роде (возможно, поле кода состояния было бы хорошим)//Проверка с предварительным просмотром, если данные есть
  3. filter-step: http включает в себя "<a href"//проверить вывод
  4. JavaScript-Step с вашим регулярным выражением *, определите новое поле с желаемым выводом

* для регулярного выражения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню