Создаем многопоточный граббер форума в несколько стадий с BrowserAutomationStudio


6 622 просмотра.

Краткое описание видео: .приветствую в этом руководстве я.расскажу как создать скрипт на браузер.автомашин studio.которые будут выполняться в несколько.стадий каждая стадия вы будет иметь свое.количество потоков и скрипт будет пошли.содержимое одного форума и.содержимое каждой темы первая стадия.будет работать в один поток и будет.постить ссылки на темы.а вторая стадия будет работать 10.потоков и будет почти содержанию каждую.тему содержание каждого поста.давайте начнем итак начнем загрузки.страницы форума.вы видите что на этой странице я просто.расположены список список тем и.парси я себя буду с помощью цикла но.давайте сначала посмотрим на разметку.страницы и какие селекторы можно.использовать для парсинга вот вы видите.что url каждый тема начинается со с.штапик.давайте используем это и сделаем цикл.именно по именно с помощью этих.особенностей браузер автомашин studio.позволяет использовать несколько видов.селекторов но сейчас я буду использовать.вектор типа матч которые позволяют.делать запросы прямо по разметке то есть.если виду.сюда часть разметку та часть разметки то.она найдет все элементы которые ее.содержат теперь у меня есть цикл и мне.нужно каким-то образом получить url.и сделать это можно с помощью действия.получить атрибут элементов нужно указать.правильный атрибут в данном случае то.храп и я поменяю название переменной.чтобы придать и больше смысла ну скрип.на самом деле мы не запустили поэтому в.данном случае будет то мало.можем жевать это и попробовать еще раз.начал и чтобы проверить работает ли цикл.или нет я выведу переменного урал в лоб.вы видите что цикл выводит нужно нам.урал и.этом стадию один можно считать.завершенной единственный момент что.стадии могут обмениваться друг с другом.данными только с помощью глобальных.переменных или ресурсов то есть мне.нужно каким-то образом передать вот этот.список в во вторую стадию чтобы она.могла его использовать в данном случае я.буду использовать ресурсы при начальной.работе скрипта я просто судам ресурс.назову его.посты и.месте записью влог будут добавлять вот.эти данный ресурс.давайте протестируем еще раз вот теперь.стадии 1 точно готова то есть у меня.есть ресурсы котором содержится просто.список ссылок.теперь давайте сделаем стадию 2.вызвать стадии можно с помощью действия.вызов функции несколько потоков you.это действие можно удобно открыть нажав.на вот эту кнопку но чтобы его вызвать.нам нужно чтобы была функция которую.которую я буду вызывать пока функции у.нас нету и и софт сообщают об этом то.есть давайте создадим функцию для неё.скраб тупик и первое что нужно сделать.очевидно это загрузить страницу.загрузили страницу.самого топика и поскольку мы на первой.стадии добавили создали ресурс добавить.до ссылке то сейчас мы можем это.использовать вылетела ошибка не удалось.загрузить страницу но это произошло.потому что урал здесь в относительном.информации то есть нам нужен формат.абсолют ну это легко исправить.достаточно просто добавить домен к.нашему пути.вот так загрузила страница и теперь я.данное которая мне нужно спросить вот.находится в этом элементе который сейчас.выделю получить текст я могу с помощью.действия ну собственно получить с.а также тут можно использовать матч.селедка и он сейчас будет работать но я.хочу показать как использовать css.селектор в нем есть такое особенное что.их может быть несколько евро за разом.очень studio предлагает на выбор данный.момент два селектора и вот вы видите что.2 которую выбирают элемент по классу он.очевидно более подходящей и будет.работать его на всех страницах.которые мы за ним то есть выберем второй.предложенный вариант.и а позже я изменю название переменной.чтобы было понятно давайте проверим.спасался и cost который находится вот.здесь для этого откроем и спектр.переменных и посмотрим что же переменный.пост да действительно тут находится тот.пост из сайта.теперь осталось последнее нужно каким-то.образом вывести результаты ну брось это.наша студия примут нас множество.вариантов для этого.среди которых и базы и встроенного.вкладка с результатами но я буду сейчас.использовать самый простой это просто.могут влог.вот на этом и стадия рогатого не знаю.что осталось сделать это вызвать эту.стадию потому что я создал но.вызвать это можно после цикла первой.стадии опять возвращаемся действием.вызов функции несколько потоков на.матрас функция уже создана и я могу ее.использовать ну здесь настройки.точно такие же какие в настройках нет то.по умолчанию софтом предлагают сотни.успешных использованию сотни неудачных.но я выставлю здесь просто очень большое.число потому что street сам закончится.закончится ресурсы для обработки точнее.закончится стадия а потом закончится.скрип и мне не нужно здесь выбирать.именно число успешных.именно он но число урал которых который.скрипт спаркл можно просто поставить.большой слон закончится автоматически.вот на этом написание скрипта в принципе.законченна очевидно что это не будет.работать в режиме отладки то есть нам.нужно потому что здесь есть.многопоточность нам нужно запустить это.все.с помощью но сначала останави запись а.потом закуси с помощью кнопки запуск.давайте проверим как это все работает.вот сейчас начал уклоняться первая.стадия создан только один бро браузер и.мы видим что выводятся в лог все ссылки.пошла вторая стадия выполняться увидите.что браузеров стало намного больше и это.означает что скрипт работает 10 потоков.или нашли выводиться на содержании у.каждого просто.мы можем посмотреть что происходит.внутри каждого браузера ну вот мы видим.что он заходит на страницу и а парсит.паштет их содержанием сейчас все ссылки.будут использованы завершится стадия.потом завершится скрип из нас тут есть.такой нюанс что в одном из браузеров.появляются страница которая видимо.которую нельзя заходить не будучи.залогиненным эту форум и соответственно.браузер ты машин studio будешь считаюсь.пока не появится.пока не появится вот этот пост потому.что на этой странице его еще видно нету.и не дождется ну это ничего то есть.скрипт все равно будет работать просто.он потратить какое-то время именно для.этого потока а именно минуту он.потратить минуту на то чтобы дождаться.дождаться этот пост но завершится с.ошибкой.но как я уже говорил это ничего потому.что мы а потому что я выставил большое.количество.не надо 1.i стадия закончится того что закончить.ресурс ну давайте подождем пока то.произойдет под скрип дольше он стремится.распарсенной ну я могу еще добавить что.можно заметно улучшать нужно выделить.первую стадию и вызвать все тоже с.помощью.действия вызов и в несколько потоков.можно почти сразу несколько форумов.создать ресурсы и дать пользователю.задать файл в котором будет просто.ссылки на форму которая нужна паша и.даже добавить первой стадии количество.потоков точно посыл происходил быстрее.но для этого тут вареника все большое.спасибо за внимание

Создаем многопоточный граббер форума в несколько стадий с BrowserAutomationStudio

Как? Вы еще не смотрели? Ну это зря...