Решения
Сбор данных без кода
- 16
- видов шага в сборщике
- 4
- из них читают страницу
- Нет
- встроенной выгрузки прочитанного
- 1, 2, 3, 5 или 8
- профилей в одном прогоне
- 100 на профиль за прогон
- снимков экрана
Куда попадает собранный текст
Это стоит выяснить раньше, чем задумывать работу. Значение, прочитанное на сороковой странице, доступно сорок первому шагу, а после прогона от него остаётся строка в журнале, а не строка в файле.
Со снимками экрана иначе. Это настоящие файлы в папке, доступной только вашей учётной записи.
- Пока идёт прогон
- Значение лежит в переменной, и следующие шаги её читают
- После прогона
- Строка в журнале здесь, последние 20 прогонов
- Снимки экрана
- Файлы PNG, доступные только вашей учётной записи
- Таблица
- Не пишется: ничто не превращает прогон в файл со строками
- Спросить местным ходом
- Номер прогона и счёт профилей, но не текст
Журнал прогона держит последние 600 строк, поэтому долгий сбор остаётся выборкой из себя.
Четыре шага для чтения
В сборщике шестнадцать видов шага, и четыре из них читают, а не действуют. Каждый идёт внутри браузера самого профиля, с его отпечатком, его печеньем и его прокси.
Пятый оставляет не текст, а свидетельство. Шаг снимка сохраняет страницу такой, какой она была.
Извлечь текст
Берёт первый подошедший селектору элемент и держит его текст, обрезанный по краям и до 4000 знаков.
Для каждого элемента
Прогоняет своё тело по каждому найденному элементу, по умолчанию десять раз и до тысячи.
Свой JavaScript
Выполняет ваш код в странице и держит то, что он вернул, с пределом в шестьдесят секунд.
Ждать запроса
Держит прогон, пока страница не попросит названный вами адрес, и опоздавший список читается после того, как он пришёл.
Что на самом деле останавливает сбор
Сломанный селектор падает громко, и чинят его за минуту. Тихо работу заканчивает другое: один браузер, одна банка печенья и один адрес, читающие тысячу страниц в час.
Профиль на источник и прокси на профиль это то, ради чего продукт и существует, и ни один селектор этого не чинит.
Адреса вы приносите свои. ARMANOS не продаёт прокси и не держит своей сети выходов: магазин это перечень 8 поставщиков, а заказ там записанная заявка без оплаты.
Список страниц каждое утро
Расписание принадлежит сценарию и называет профили, время и сколько идёт разом. Каждый день, по выбранным дням недели или раз в 1-24 часа, по вашему местному времени.
Срабатывает оно, только пока ARMANOS открыт. Слот, опоздавший больше чем на тридцать минут, переносится вперёд и считается пропущенным, а пропущенное не доигрывается.
Это сделано нарочно. Тридцать профилей, проснувшихся разом в час, когда они обычно не работают, это и есть всплеск, который сайт читает как робота.
Строки в таблице
Честный ответ про выгрузку такой: её делают расширения для сбора, а не мы. В каталоге внутри программы их два, оба работают мышью и оба сами пишут CSV.
Ставятся они в выбранный вами профиль, поэтому сбор идёт за отпечатком и адресом этого профиля.
Это чужая работа. Мы сохраняем их магазинный номер, чтобы страница видела то расширение, которое ожидает.
| Что нужно | Откуда берётся | Что делаем мы |
|---|---|---|
| Текст в переменную | Шаг чтения в сборщике | Наше, и никакого файла не пишет |
| CSV со списком | Расширение для сбора из каталога | Ставим его в один профиль |
| Свидетельство о цене | Шаг снимка экрана | Наше, файлы PNG |
| Строки по расписанию | Расписание над сценарием | Наше, пока программа открыта |
Где площадка говорит нет
Правила идут раньше техники. Условия пользования, права на базу данных и закон о личных данных решают вопрос раньше, чем до него доберётся любой вид шага.
Одна площадка называет это прямо. LinkedIn просит один аккаунт на человека под настоящим именем и отдельно наказывает за автоматический сбор данных оттуда, поэтому мы говорим об этом вслух и не продаём ничего, что запрет обходит.
Там, где такого правила у сайта нет, задача снова становится инженерной.
Когда страница сопротивляется
Ничто в продукте не отвечает на проверку и ни к какой решающей службе не подключается. Отвечать на неё вам, в своём окне.
Прогон на ней тоже не останавливается. Шаг, ничего не нашедший, записывается как провалившийся, а следующие идут дальше по странице, которая всё ещё спрашивает.
Профилю, запущенному без окна, вопрос показать негде вовсе, поэтому работу, способную его поднять, запускают так, чтобы её было видно.
Готово не значит собрано
Чего это не делает
- Там, где площадка запрещает автоматический сбор, это её правило, и обходить его мы не помогаем. LinkedIn называет запрет прямо и просит один аккаунт на человека, так что и второго аккаунта там мы не продаём.
- Встроенной выгрузки нет ни одной. Прочитанное шагом чтения живёт в журнале прогона на этой машине, местный ход запуска отвечает номером прогона, а CSV пишет только чужое расширение из каталога.
- Шаг чтения берёт первый подошедший его селектору элемент и текст внутри него. Таблиц он не понимает, страницы не листает, схемы данных здесь нет.
- Проверку мы не решаем и к решателям не подключаемся. Профилю без окна вопрос показать негде, шаги после него идут дальше, и прогон кончается провалом.
Как проверить
У каждого утверждения выше есть файл и стенд, который краснеет, как только оно перестаёт быть правдой.
- Какие виды шага бывают в сценарии
- apps/desktop/src/lib/rpa.js · apps/desktop/test/rpa-reach.js
- Прогон действительно ведёт браузер
- apps/desktop/test/сценарий-живьём.js
- Местный ход запуска отвечает номером прогона
- apps/desktop/src/lib/local-api.js · apps/desktop/test/local-api-gate.js
- Что законченный прогон оставляет здесь
- apps/desktop/src/main/main.js · apps/desktop/test/run-log-survives-restart.js
- Готово значит шаги прошли
- apps/desktop/src/main/main.js · apps/desktop/test/run-result-honest.js
- Магазинный номер расширений для сбора
- packages/shared/src/index.js · apps/desktop/test/ext-keeps-store-id.js
Вопросы
- Как получить строки в таблицу?
- Из журнала прогона на этой машине: больше программа их никуда не кладёт, и кнопки выгрузки у итога прогона нет. Файл сам собой пишет расширение для сбора из каталога, и отвечает за него тот, кто его сделал.
- Можно ли собирать там, где это запрещено?
- Это ваш вопрос к площадке, а не к нам. Где запрет назван прямо, мы говорим о нём вслух и не продаём ничего, что его обходит.
- Что будет, когда поднимется проверка?
- Её никто не решает. Шаг записывается как провалившийся, следующие идут дальше, а профиль без окна вопрос показать не может.
- Даёте ли вы адреса?
- Нет. Магазин это перечень 8 поставщиков, заказ там записанная заявка без оплаты, а без прокси профиль выходит с вашего собственного адреса.
Один список страниц и десять профилей
Сборщик, журнал прогона и расписание живут в самой программе. О сценарии наружу ничего не уходит, пока вы сами его не выгрузите.