Перейти к содержимому

Глоссарий

Веб-скрейпинг

Сайт отдаёт браузеру текст и картинки, а не таблицу. Превратить это обратно в строки несложно; трудное это аккаунт, адрес выхода и темп, с которым вы читаете.

Веб-скрейпинг это чтение данных со страницы так, как их видит посетитель, с записью в свои собственные строки.

Из чего складывается сбор

Любой сбор это три одинаковых движения по кругу. Браузер открывает адрес, на странице находится нужный кусок, и его содержимое записывается под выбранным именем.

  1. 1

    Открыть адрес

    Страницу грузит настоящий браузер, поэтому дорисованное скриптами тоже доступно чтению.

  2. 2

    Указать на кусок

    Указатель называет то место, которое вы имеете в виду, а сайт решает, совпадёт ли оно завтра.

  3. 3

    Записать под именем

    Текст становится значением для следующих шагов, и просмотр превращается в сбор.

Что страница читает про вас

Это прочитано в вашем браузере на этой странице, и сайт, с которого вы собираете, читает то же самое. Отметку автоматизации в строке ниже обычные средства сбора как раз и оставляют включённой.

Ваша машина прямо сейчас

User agent
измеряем на вашей машине
navigator.webdriver
измеряем на вашей машине
Языки
измеряем на вашей машине
Часовой пояс
измеряем на вашей машине

Прочитано в вашем браузере и показано здесь. Никуда не отправляется.

Шаги чтения в сценарии

На экране «Сценарии» закреплённый набор видов шага, и четыре из них читают, а не действуют. Идут они внутри браузера самого профиля, с его отпечатком, куки и прокси.

  • Извлечь текст

    Берёт первый подошедший кусок страницы и кладёт его текст в переменную, обрезанный по краям и по длине.

  • Для каждого элемента

    Проходит телом по каждому найденному куску до заданного потолка и перечитывает список на каждом проходе.

  • Выполнить JavaScript

    Исполняет ваш код прямо в странице и хранит то, что он вернул: выход на случай, когда указателя мало.

  • Ждать запрос

    Держит ход, пока страница не запросит названный вами адрес, и поздно пришедший список читается после прихода.

Куда попадает собранный текст

Это стоит знать до того, как работа спланирована. Значения живут внутри прогона, пока он идёт, а после него остаётся журнал, а не готовый набор данных.

Во время прогона
Значение лежит в переменной, и следующие шаги его берут
После прогона
Виден в журнале шагов последнего прогона на экране «Сценарии»
Снимки экрана
Файлы в каталоге, который читает только ваша учётная запись
Таблица
Не пишется: выгрузки строк в файл здесь нет вовсе

Запуск сценария через локальный API отвечает опознавателем прогона, а не прочитанным текстом.

Часто путают с этим

  • Открытый интерфейс

    Объявленный интерфейс даёт записи и договорённость о них. Сбор даёт то, что страница нарисовала сегодня.

  • Обход сайта

    Обход это поиск страниц, которые стоит открыть. Сбор это чтение уже выбранной страницы, и настоящей работе нужно и то и другое.

  • Браузер без окна

    Работа без окна это способ собирать, а не разновидность сбора, и замечают её первой.

Почему сбор замечают

Сломанный указатель падает громко, и чинится он за минуту. Всё, что ниже, падает тихо, и разбор страницы тут ни при чём.

  • Один адрес и тысяча чтений

    Серверный адрес, вытягивающий тысячу страниц в час, это самая старая примета в этом деле.

  • Ритм, какого не держит человек

    Ровные паузы, одинаковая длина прокрутки и прогон, начинающийся в одну и ту же секунду.

  • Один браузер на всё

    Двадцать аккаунтов за одним отпечатком и одной банкой куки связаны ещё до первой прочитанной страницы.

Чего это не делает

  • Выгрузки данных здесь нет. Собранное шагом чтения живёт в прогоне и в журнале шагов последнего прогона на экране «Сценарии», и ни таблицы, ни базы за вас никто не пишет.
  • Запуск сценария через локальный API возвращает опознаватель прогона, а не строки. Программа на этой машине видит список сценариев и запускает прогон, а хода, который отдал бы прочитанное, у неё нет.
  • Шаг чтения берёт первый подошедший кусок страницы и текст внутри него. Ни понимания таблиц, ни перелистывания выдачи, ни описания полей здесь не предусмотрено.
  • Это не решает того, из-за чего работа и заканчивается. Репутация адреса, история сессии и час, в который вы работаете, это отдельные задачи, и аккаунты закрывают из-за них чаще.

Проверить

Каждое утверждение выше это файл, который открывается, и стенд, который идёт.

Виды шагов, которые может держать сценарий, и что хранит шаг чтения
apps/desktop/src/lib/rpa.js
Присланный сценарий нельзя навести на файл вашего диска, и адрес проверяется ещё раз на ходу
apps/desktop/src/lib/rpa.js · apps/desktop/test/rpa-reach.js
Прогон по-настоящему ведёт браузер и по-настоящему меняет страницу
apps/desktop/test/сценарий-живьём.js
Что законченный прогон оставляет на этой машине, а что отбрасывает
apps/desktop/src/main/main.js · apps/desktop/test/run-log-survives-restart.js

Вопросы

Законен ли сбор данных со страниц?
Это зависит от сайта, от самих данных и от того, где вы находитесь, и страница словаря за вас не ответит. Правила сайта, права на базу данных и законы о личных данных действуют раньше любого технического вопроса.
Почему руками получается, а скриптом нет?
Чаще всего потому, что скрипт сам о себе сообщает. Обычное средство управления оставляет включённой отметку автоматизации и свою строку браузера, а сайт читает их на первом же запросе.
Нужен ли вообще настоящий браузер?
Для страницы, которая приходит готовой, не нужен. Для всего, что дорисовывают скрипты, браузер это самый дешёвый способ увидеть то же, что видит посетитель.
Можно читать всё одним профилем?
Можно, и тогда всё прочитанное связано с одной личностью. Работа, которую нельзя связывать, живёт в разных профилях с разными адресами выхода.
Как забрать значения из ARMANOS?
Они видны в журнале шагов последнего прогона на экране «Сценарии», и больше программа их никуда не кладёт. Кнопки выгрузки итогов прогона здесь нет.

Прочитайте страницу отдельным профилем

Сценарии, журнал шагов и профили живут в самой программе, и о сценарии не узнает никто, пока вы сами его не отправите.