Считывание таблицы с сайта

Здравствуйте. Не нашла действие, которое считывает табличный формат данных с сайта. Такое существует?

Добрый день, @Anna!

Это возможно построить с помощью действий в группе “Браузер”. При считывании данных с веб-страниц необходимо обращаться к элементам веб-страницы и их свойствам. Т.е. использовать действие “Прочитать значение элемента” или “Прочитать свойство элемента” с указанием в Параметрах считываемого элемента либо элементов.
Возможно указывать как конкретный (уникальный) элемент, так и целый ряд элементов с помощью Browser Picker и использовании CSS-селекторов и XPath.

@Anna, подскажите, на каком сайте необходимо считать такого рода данные.

Например, по данной ссылке необходимо считать все актуальные процедуры, конкретно их названия и даты в столбце “Актуально до”, количество найденных процедур всегда будет меняться

https://www.b2b-center.ru/market/?f_keyword=Хранение+данных&searching=1&main_page_search=1#search-result

@Anna, для таких целей попробуйте составить такого рода workflow:

В данном случае первый элемент можно указать через Browser Picker:

И в настройках действия “Прочитать значение элемента” указать чекбокс “Несколько элементов”, чтобы мы получили все элементы в виде массива.

Далее измеряем длину созданного массива чтобы понять сколько названий на странице (может быть меньше 20).

При указании другого элемента с помощью Browser Picker мы видим, что выделяются также другие элементы (см. скрин)

Поэтому, для указания второго элемента мы используем CSS-селектор, который получили по данной инструкции (ПКМ на строчку веб-кода-Copy-Copy selector).

Скопированный CSS-селектор первого элемента (30.09.2020 10:00:00) равен #content > div:nth-child(4) > table > tbody > tr:nth-child(1) > td:nth-child(4).

Для циклического обращения к другим таким же элементам составляем такую запись (подставляем счётчик) #content > div:nth-child(4) > table > tbody > tr:nth-child(" + counter + ") > td:nth-child(4).

По итогу каждого цикла проводим запись в таблицу Excel.

@Anna, подскажите, если остались какие-либо вопросы.

Можно ли сделать так, чтобы робот считывал таблицы в буфер с сохранением табличной структуры для последующего занесения в Excel? Выделяя таблицу как цельный элемент с помощью XPath сохраняются элементы гипертекстовой разметки и данные записываются в одну строку (фото прилагается), а, используя выделение нескольких элементов (как в этом треде), данные сохраняются в столбец, который потом невозможно нормально обработать.

@BonPlace, да. Для этого необходимо вместо разовой записи всех значений в одну ячейку, построить цикл записи каждого элемента в следующую ячейку с помощью действия “Дописать в Excel”.

Если остались какие-либо вопросы - обращайтесь! Также будет проще рассмотреть эту возможность на конкретном примере.

Чем могут быть вызваны ошибки при добавлении в Excel второй и третьей строки таблицы:
Selectors: Error converting value “seasea5367@gmail.com seasea5367@gmail.com 2020-09-04 12:58:54 ссылка внешняя” to type ‘System.Collections.Generic.IDictionary`2[System.String,System.String]’. Path ‘new_row_json’, line 1, position 219. . Перейдите в Базу Знаний для получения информации о настройке действия ‘Добавить строку в Excel’ . - при использовании CSS-селектора

Selectors: Invalid row format.
. Перейдите в Базу Знаний для получения информации о настройке действия ‘Добавить строку в Excel’ .
- при использовании XPath.

Важное замечание - первая строка сохраняется в переменной как массив, а вторая и третья - как string-строка. Это при том, что в верстке эти строки не отличаются вообще ничем.

Спасибо!

@BonPlace, возникает ли ошибка при считывании данных?
Подскажите:

  • какие значения попадают в переменную в 1-ом, 2-ом и 3-ем случае?
  • какое значение используется в “Добавить строку в Excel”?

Также видно, что у Вас используются CSS-селекторы разного формата.

  1. При считывании данных ошибка не возникает, но значения попадают в переменную в разных форматах: в первом случае это массив, во втором и третьем случае - строка. Это видно на прилагающихся скриншотах.

  1. В строку Excel попадает результат предыдущего шага. При этом в первом случае всё работает нормально, а во втором и третьем случае выдаёт ошибку даже если запускать эти ветки отдельно от ветки с первым случаем.

  2. CSS-селекторы такие, какие они есть на этой странице. Я формировал их не самостоятельно а брал, как рекомендуется в вашей базе знаний. К тому же в первом и третьем случае одинаковый формат селектора, но результат всё равно разный.

Всё еще актуально. Спасибо!

Добрый день, @BonPlace!

В качестве значения в действии “Дописать строку в Excel” необходимо задавать массив либо объект с элементами.

В 1-ом случае у Вас как раз массив, во 2-ом и 3-ем - строка. Возможно добавить эти строки в отдельные массивы следующей записью:

Данную запись возможно формировать также в самом действии “Дописать строку в Excel”: