#html #screen-scraping
Вопрос:
Я новичок в Синей призме и очистке паутины. Я хочу очистить список элементов под заголовком. Заголовок не изменится, но элементы в списке изменятся.
Пример:
Список участников
Чарльз Шваб
ТД Америтрейд
Изменения в списке
Список участников
Ну Фарго
ТД Америтрейд
Итак, как мне гарантировать, что атрибуты в модуляторе приложений для списка всегда смогут удалять изменяющиеся элементы в списке?
Отмечу некоторые атрибуты, такие как
имя тега = пользовательского интерфейса
path=/HTML/BODY(1)/SGX-HEADER(1)/HTML/BODY(1)/DIV(1)/MAIN(1)/DIV(1)/ARTICLE(1)/TEMPLATE-BASE(1)/DIV(1)/DIV(1)/SECTION(1)/DIV(1)/SGX-WIDGETS-WRAPPER(1)/WIDGET-RICH-TEXT(5)/UL(1)
Что означают эти атрибуты? Спасибо
Комментарии:
1. Вы бы перечислили li в ul. Проблема возникнет, если что-то на более раннем этапе пути изменится.
2. @QHarr: Спасибо за ответ. Что означает число в скобках? Например, ВИДЖЕТ-ФОРМАТИРОВАННЫЙ ТЕКСТ(5). Я отмечаю в HTML-файле веб-сайта, что у них есть название класса и категория анализа данных. Не лучше ли иметь путь, который ссылается на имя класса и категорию data-analytics.?
3. Это 5-й дочерний тег ВИДЖЕТА С БОГАТЫМ ТЕКСТОМ.
4. @ QHarr: Что вы имеете в виду под тегом ребенка? Должен ли 1 тег РАСШИРЕННОГО ТЕКСТА ВИДЖЕТА быть встроен в другой, чтобы он был дочерним? <Класс ВИДЖЕТА-ОБОГАЩЕННОГО ТЕКСТА=’A’> <Класс ВИДЖЕТА-ОБОГАЩЕННОГО ТЕКСТА=’A’><Класс ВИДЖЕТА-ОБОГАЩЕННОГО ТЕКСТА=’B’> <Класс ВИДЖЕТА-ОБОГАЩЕННОГО ТЕКСТА=’B’></ВИДЖЕТ-ОБОГАЩЕННЫЙ ТЕКСТ></ВИДЖЕТ-ОБОГАЩЕННЫЙ ТЕКСТ></ВИДЖЕТ-ОБОГАЩЕННЫЙ ТЕКСТ>
5. Это 5-е место внутри
SGX-WIDGETS-WRAPPER(1)
Ответ №1:
Вы можете создать динамический атрибут и убедиться, что он существует, прежде чем считывать его из приложения. Как только ваш модельер приложений будет настроен, он будет выглядеть примерно так
path=/HTML/BODY(1)/SGX-HEADER(1)/HTML/BODY(1)/DIV(1)/MAIN(1)/DIV(1)/ARTICLE(1)/TEMPLATE-BASE(1)/DIV(1)/DIV(1)/SECTION(1)/DIV(1)/SGX-WIDGETS-WRAPPER(1)/WIDGET-RICH-TEXT(5)/UL(1)
при этом для этого поля установлено значение динамический. Во время выполнения у вас есть поток, который выглядит следующим образом:
вот как будет выглядеть поток, проверьте, существует ли он, затем освободите место в коллекции и прочитайте значение в пути к существующему элементу. стадия ожидания выглядит так:
таким образом, поток достаточно прямолинейен, динамическая переменная позволяет отслеживать существующий элемент, как только он существует, подтвержденный этапом ожидания, затем считывает содержимое по этому значению пути и повторяет до тех пор, пока больше не останется существующих элементов, и в результате выводит коллекцию.