Парсер

Парсер

@de_sync

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

Без логина на аккаунт мы не сможем открыть страницу с юзерами, значит первое по логике это запрос логина на аккаунт. По аналогии добавляем прокси, снифаем запрос логина и вставляем в бас.

Запрос отработал, зачастую куки авторизации подтягиваются в последующие запросы автоматически, поэтому в заголовки потом добавлять ничего не нужно. Теперь открываем страницу поиска юзеров, выбираем фильтры которые нам нужны, и снифаем запрос когда нажимаем кнопку поиск. Тут я выбрал поиск по онлайну.

Даем гет запрос в басе на этот юрл

Смотрим ответ и открываем его в браузере, смотрим код элемента где есть ники и как будем их парсить

Глянули будем парсить их регуляркой без проблем. Возвращаемся пока к построению шаблона. Нам нужно снифнуть переход на другие страницы пользователей. Для этого снифаем переход на вторую страницу. Получаем такой ГЕТ запрос, вставляем в бас и так же проверяем его работоспособность.

Видим что запрос отработал нормально и перекинул нас на 2 страницу с юзерами

Значит нужно установить переменную которая будет отвечать за страницу. Назовем ее PAGE и она будет =2, вставим ее после первого ГЕТ запроса

После переменной пейдж начинаем цикл который будет переходить по страницам 2-3-4....и т.д. и парсить наших юзеров с сохранением их в файл. Создаем блок FOR от одного до 197, т.к. имеем 197 страниц онлайн юзеров.

Все последующие действия мы делаем под блоком For. Первое, нужно сохранить содержание ответа последнего гет запроса, т.к. регулярному выражению нужно откуда-то брать данные. Назовем переменную со статусом PARSREGULAR.

Теперь регулярка, аналогично с регистрацией, идем в конструктор и берем код который мы до этого чекали, возьмем строчку ?profile=Janek28ozo" и вставим в конструктор. Janek28ozo наш результат.

?"= встечаются один раз каждый, profile выделяем и тоже один раз. Janek28ozo выделяем так

Копируем все что мы получили из ГЕТ запроса на страницу с юзерами для проверки регулярки

И вставляем в проверку где есть наша регулярка. Смотрим все ровно отработало, но каждый юзер дважды, просто файл потом прогоняем антидубликатом и все, это не проблема.

Вставляем регулярку в бас. Регулярные выражения извлечь все данные, строка для применения будет наша переменная PARSREGULAR, а регулярку назовем RESULT.

Выведем данные в лог с результатом

Теперь нужно это дело записать в файл. Файловая система - Записать СПИСОК в файл. Наша переменная RESULT которую мы будем записывать и путь к этому файлу. Так же ставим обе галочки

Дальше увеличиваем нашу переменную PAGE на 1

Последний штрих, гет запрос который в конце ставим после увеличения переменной и меняем в нем page=2 на нашу переменную [[PAGE]]

Такой парсер запускаем в один поток с одним успешным выполнением. Тоесть его логика - Логин на аккаунт - отрытие страницы с юзерами по заданным фильтрам - сохранение содержания ответа этой страницы - регулярное выражение которое достает ники юзеров из этого содержания ответа - запись этих ников в файл - увеличение переменной страницы на один - переход на страницу которая будет в нашей переменной. Скрипт закончится после того как прогонит цикл фор 197 раз.

Парсер готов, сложного ничего нет.

Report Page