Как автоматизировать работу в браузере

от admin

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования ⁠ ⁠

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

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

И если про автоматизацию работы в эксель уже написано немало постов, то что делать тем, кто работает вне этой замечательной программы? Для этого я хотел бы создать серию постов, в которой попробую научить вас автоматизировать работу с помощью программы clikermann

Почему она?
— Она бесплатная. Совсем. Никаких пробных версий, никаких реклам в самой программе, создана на чистом энтузиазме и добровольных пожертвованиях автору.
— Интерфейс максимально прост, как и язык написания сценариев.
— Есть возможность записи действий, можно полностью обойтись без редактирования или создания с нуля своего скрипта.

— Встроенный редактор.
— Не требуются права администратора для установки, скачал — запустил.

— Русскоязычная справка по программе и русскоязычное сообщество.

Что можно с помощью неё делать?
Лично я автоматизировал работу с 1С, SAP, сайтами, тем же экселем, публикации в социальных сетях. Так же можно запрограммировать действия в играх, реакцию на происходящее на экране, набор текста, буквально что угодно.

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Всего лишь иконка этой программы

В первой части уроков познакомимся с интерфейсом программы:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Так как мы пытаемся сделать все как можно проще, расскажу только про самые необходимые кнопки. Создадим свой первый скрипт и попробуем написать какой-нибудь простой скрипт, своего рода Hello world от мира автокликинга.

Нажимаем на кнопку создания скрипта (1) и кнопку редактора (3).

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Интерфейс редактора

Нажимаем на сохранить как (4) выбираем место, где он будет храниться (желательно оставить его в папке с программой) и имя сценария. Сама программа и скрипты будут весить совсем немного, 640 КБ действительно хватит всем, для скриптов уж точно, поэтому можно за это не переживать.

Создадим скрипт который будет брать адрес страницы из таблицы эксель, открывать его в браузере и так несколько раз. Вот что у нас получилось:

Ну и собственно, как выглядит скрипт, который делает всю эту работу:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

Мы используем несколько команд:

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

LCLICK — Кликает левой кнопкой мыши по указанным в скобках координатам, необходимости прописывать их в ручную нет, просто наводите мышь туда, куда хотите кликнуть и нажимаете комбинацию ALT + Q . Команда с координатами вставляется в скрипт автоматически. Либо если хотите вручную их поправить, опять же наводим мышь на желаемое расположение и смотрим сюда:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

RCLICK — Соответственно всё тоже самое, только правой кнопкой мыши, вызывается тем же набором клавиш, просто нужно заменить в скрипте L на R.


Шаблоны
копирования и вставки (CTRL + C, CTRL +V) они уже есть в разделе шаблоны, нет необходимости их прописывать самому, просто выбираем подходящий.

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост


KEYPRESS
— В том случае, если нам нужно нажать какую либо кнопку, выбираем эту команду, кстати чтобы не прописывать в ручную, эту команду тоже можно выбрать из списка команд:

Как автоматизировать однотипную, монотонную работу бесплатно и без навыков программирования Автокликер, Автоматизация, Урок, Видео, Длиннопост

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

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

301 пост 4.5K подписчиков

Правила сообщества

-Ставьте наши теги, если Ваш пост о программе, приложении или браузере(в том числе о расширениях, дополнениях в нему), его недоработке, баге, обновлении. Это может быть пост — обзор или отзыв.

-При возникновении споров относитесь с уважением друг к другу, а так же приводите аргументы.

Разрешено всё, что не запрещено правилами Пикабу.

Посмотрел недавно пост про автоматизирование всякого и мне так грустно стало. Я писал пару лет назад хорошее приложение, пытался исправить все косяки других кликеров, чтобы пользоваться было максимально удобно. Но, как-то не зашло и проект был заброшен.

Там много фич. К примеру, там вообще не нужно знание чего-либо и достаточно прсотонажать кнопку «запись» и он начнет записывать все дейтсвия пользователя. После чего нажимаем кнопку пуск и оно воспроизводит. МОжно потом привязать это на клавишу. Все можнго делать просто тыкая нужные компоненты. Для тех кто хочет автоматизировать что угодно — там поддержка почти полноценного JS. Попробуйте, авось зайдет, может и проект оживет. Буду рад если он будет полезен хоть кому-то

Но запустить можно где и под Linux и даже под MacOS

Эх, сколько раз меня выручала автоматизация! Вспомнил тут пару случаев. (если что то использую скрипты в AutoHotkey (AHK)).

Первый был когда еще в органах работал. Начальство придумало — а давайте все фабулы дел вносить в базу данных. При этом база данных не воспринимала копировать-вставить (что тупо), но база не публичная и вход через матюки и старый интернет эксплорер, так что работали как есть. Сидишь, придумываешь как это сократить и потом впечатываешь. Особенно сильно негодовали мы с другом, так как у нас были не перспективные дела (в отделе на каждого следака было по 10 дел в месяц, а у нас с ним напару под сотню, именно чтобы разгрузить остальных). И нам печатать было больнее всего. И тут я вспомнил про АНК и что он умеет печатать из буфера обмена — т.е. для меня это было копировать-вставить, а база воспринимала это словно я напечатал. Экономия во времени была колоссальная.

Второй момент был в учётке — меня молодого специалиста посадили править табличку учёта личных дел. Табличка была уже не помню в какой проге, но она тоже была с приветом. Там было около 20 000 позиций, где нужно было руками убирать пару символов в начале. И нельзя скопировать никуда (в эксель например), только работать руками. Дурь. Времени начальство выделило 2 дня, типа сиди молодой, правь строчки. Ну я два дня и использовал: 20 минут шаманства со скриптом, и уютное чтение книжки под чаек на этот и следующий день, пока строчки сами себя правят. Помню в середине процесса напарник пришел и запаниковал чего это я не работаю)

Да и мелкие задачи, если их можно автоматизировать, тоже переносятся в АНК. Из того что помню:

— тоже из учётки. Перешла к нам в отдел женщина, которая в работе разбиралась но с пк была на Вы. Очень мне не нравилось что она постоянно просила меня подойти и поставить апостроф, т.к. у неё не получалось (много раз в день, Карл!). На очередную просьбу я просто сделал ей скрипт который этот апостроф ставит по нажатию на Pause, а на клавиатуру напечатал на самоклейке этот апостроф и на эту кнопку наклеил.

— люблю смотреть видео из ютуба, предварительно скачивая их на телефон. Помогал мне в этом сейвфром, который умеет скачивать плейлисты из ютуба (умел по крайней мере пол года назад). Алгоритм такой — проклацивал кнопку «добавить в посмотреть позже» на подписках, потом весь плейлист скачивал, а потом удалял видео из плейлиста. Через месяц повторял. Но однажды ютуб поменял интерфейс и удаление перестало быть удобным — нужно нажать на выпадающее меню, и там уже «удалить из плейлиста». Что ломало мой алгоритм. И снова АНК. Скрипт на четыре кнопки — 1 и 2 запоминают позиции мыши (на выпадающем меню и на пункте «удалить»), третья запускает перемещение и клики мыши, четвертая останавливает скрипт. Итог — вручную делать уже не надо.

— в онлайн игре играл в 9 окон (ходил на рейд в соло в л2, управляя всем из одного) — это не продвинутый бот и пришлось помучаться но в итогесмог отправлять команды в свёрнутые окна не открывая из, было удобно; в другой игре был тупой крафт, где тоже нужно было прокликивать одни и те же места, тоже скрипт сработал.

— часто работаю в премьер про (программа видеомонтажа) и там некоторые удобные функции не реализованны, увы. Но они прекрасно допиливаются скриптом. Те же накидывания эффектов. Приходится переключаться на отдельную панель, имкать там эффект и перетаскивать на слой.Но те кто работал в АЕ с Fx console меня поймет, это можно сделать удобнее — скрипт сам делает все эти действия, еще и за секунду. Или еще пример. Часто приходится повышать уровень громкости, и это однотипное движение, особенно если видеофрагментов под сотню. Все вместе тоже нельзя — автоматика выровняет по самому громкому кусочку, что попортит все. Выручает скрипт. И еще полезность — горячие клавиши нельзя повесить на правую кнопку мыши, но иногда хочется — опять скрипт. Сделал перемещение курсора себе на пкм. Он еще и щупает что лежит под курсором и если там кусочек видео, то выпадает меню (как обычно), а если пустота то срабатывает горячая клавиша.

— надо было отстабилизировать много фрагметов видео. Алгоритм следющий — выделяем фрагмент, набрасываем на него стабилизатор, жмем «анализ», ждём пока пройдет анализ (каждый раз разное время, зависит от длинны кусочка видео), и переходим к следующему кусочку. И так пару сотен кусков. С коллегой решили что лучше потратить время на настройку скрипта и оставить компьютер на ночь чем сидеть руками делать. И помогло что скриптом можно определять открыто ли окно анализа, на что мы и ориентировались.

Если вы подумали, что для того чтобы сделать всё тут описанное нужны навыки програмирования, то вы ошибаетесь. Большая часть примеров была сделана путем копирования скрипров которые записаны в русской документации по программе (прямо напрячься пришлоь только в скрипте для игры). Да и на самом деле сейчас есть много других программ, в которых даже не нужно ничего писать текстом, записывай действия и все (как в оригинальном посте).
Поэтому помните, что автоматизация это бро. Иногда стоит потратить время на обдумывание однообразной задачи и попытки её автоматизировать.

JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг

Библиотека puppeteer для Node.js позволяет автоматизировать работу с браузером Google Chrome. В частности, с помощью puppeteer можно создавать программы для автоматического сбора данных с веб-сайтов, так называемые веб-скраперы, имитирующие действия обычного пользователя. В подобных сценариях может применяться браузер без пользовательского интерфейса, так называемый «Headless Chrome». Используя puppeteer , можно управлять и браузером, который запущен в обычном режиме, что особенно полезно при отладке программ.

image

Предварительная подготовка

Перед началом работы вам понадобится Node 8+. Найти и загрузить его можно здесь, выбрав текущую (Current) версию. Если вы никогда раньше не работали с Node, взгляните на эти учебные курсы или поищите другие материалы, благо, их в Сети предостаточно.

После установки Node создайте папку для проекта и установите puppeteer . Вместе с ним будет установлена и актуальная версия Chromium, который гарантированно будет работать с интересующим нас API. Сделать это можно с помощью следующей команды:

Пример №1: создание копий экрана

После установки puppeteer разберём простой пример. Он, с небольшими изменениями, повторяет документацию к библиотеке. Код, который мы сейчас рассмотрим, делает скриншот заданной веб-страницы.

Для начала создадим файл test.js и поместим в него следующее:

Построчно разберём этот код. Сначала покажем общую картину.

В этой строке мы подключаем ранее установленную библиотеку puppeteer в качестве зависимости.

Тут представлена главная функция, getPic() . Эта функция содержит код, автоматизирующий работу с браузером.

В этой строке мы вызываем функцию getPic() , то есть, выполняем её.

Важно обратить внимание на то, что функция getPic() является асинхронной, она определена с ключевым словом async . В ней используется конструкция async / await из ES 2017. Так как getPic() — функция асинхронная, она, при вызове, возвращает объект Promise . Такие объекты обычно называют «промисами». Когда функция, определённая с ключевым словом async , завершает работу и возвращает некое значение, промис либо будет разрешён (в случае успешного завершения операции), либо отклонён (если произойдёт ошибка).

Благодаря использованию при определении функции ключевого слова async , мы можем выполнять в ней вызовы других функций с ключевым словом await . Оно приостанавливает выполнение функции и позволяет дождаться разрешения соответствующего промиса, после чего работа функции продолжится. Если это всё вам пока не понятно — просто читайте дальше и постепенно всё начнёт становиться на свои места.

Теперь разберём код функции getPic() .

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

Здесь мы создаём в браузере, управляемом посредством программного кода, новую страницу. А именно, запрашиваем эту операцию, ожидаем её завершения и записываем ссылку на страницу в константу page .

Читать:
Серый ip как сделать роутер видным из интернета

Используя переменную page , созданную в предыдущей строке, мы можем дать странице команду по переходу на указанный URL. В данном примере мы переходим на https://google.com . Выполнение кода, как и в предыдущих строках, приостановится до завершения операции.

Здесь мы запрашиваем у puppeteer создание скриншота текущей страницы, представленной константой page . Метод screenshot() принимает, в виде параметра, объект. Тут можно указать путь, по которому нужно сохранить скриншот в формате .png . Опять же, здесь используется ключевое слово await , что приводит к приостановке выполнения функции до завершения операции.

Функция getPic() завершает работу и мы закрываем браузер.

Запуск примера

Вышеописанный код, сохранённый в файле test.js , можно запустить с помощью Node следующим образом:

Вот что получится после того, как он успешно отработает:

Замечательно! А теперь, чтобы было веселей (и чтобы облегчить отладку), мы можем выполнить те же действия, запустив Chrome в обычном режиме.

Что бы это значило? Попробуйте и увидите сами. Для этого нужно заменить эту строку кода:

Сохраним файл и снова его запустим с помощью Node:

Здорово, правда? Передавая объект в качестве параметра при запуске браузера мы можем наблюдать за тем, как код управляет работой Google Chrome.
Прежде чем идти дальше, сделаем ещё кое-что. Вы заметили, что скриншот, который делает программа, включает в себя лишь часть страницы? Так происходит из-за того, что окно браузера немного меньше размера веб-страницы. Исправить это можно с помощью следующей строчки, меняющей размер окна:

Её надо добавить в код сразу после команды перехода по URL. Это приведёт к тому, что программа сделает скриншот, который выглядит гораздо лучше:

Вот как будет выглядеть итоговый вариант кода:

Пример №2: веб-скрапинг

Теперь, когда вы освоили основы автоматизации Chrome с помощью puppeteer , разберём более сложный пример, в котором займёмся сбором данных с веб-страниц.

Сначала стоит взглянуть на документацию к puppeteer . Можно обратить внимание на то, что тут имеется огромное количество различных методов, которые позволяют нам не только имитировать щелчки мышью по элементам страниц, но и заполнять формы, и читать со страниц данные.

Мы будем собирать данные с сайта Books To Scrape. Это — имитация электронного книжного магазина, созданная для экспериментов по веб-скрапингу.

В той же директории, где лежит файл test.js , создайте файл scrape.js и вставьте туда следующую заготовку:

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

В этом фрагменте мы подключаем ранее установленный puppeteer . Далее, у нас имеется функция scrape() , в которую, ниже, мы добавим код для скрапинга. Эта функция возвратит некое значение. И, наконец, мы вызываем функцию scrape() и работаем с тем, что она возвратила. В данном случае — просто выводим это в консоль.

Проверим этот код, добавив в функцию scrape() возврат строки:

После этого запустим программу командой node scrape.js . В консоли должно появиться слово test . Работоспособность кода мы подтвердили, нужное значение попадает в консоль. Теперь можно заняться веб-скрапингом.

▍Шаг 1: настройка

Сначала надо создать экземпляр браузера, открыть новую страницу и перейти по URL. Вот как мы всё это сделаем:

Разберём этот код.

В этой строке мы создаём экземпляр браузера и устанавливаем параметр headless в false . Это позволяет нам наблюдать за тем, что происходит.

Здесь создаём новую страницу в браузере.

Переходим по адресу http://books.toscrape.com/ .

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

Здесь закрываем браузер и возвращаем результат.

Предварительная подготовка завершена, теперь займёмся скрапингом.

▍Шаг 2: скрапинг

Как вы уже, наверное, поняли, на сайте Books To Scrape имеется большой каталог настоящих книг, снабжённых условными данными. Мы собираемся взять первую книгу, расположенную на странице, и вернуть её название и цену. Вот домашняя страница сайта. Щёлкнем по первой книге (она выделена красной рамкой).

В документации по puppeteer можно найти метод, который позволяет имитировать щелчки мышью по странице:

Конструкция вида selector <string> представляет собой селектор для поиска элемента, по которому нужно щёлкнуть. Если обнаружено несколько элементов, удовлетворяющих селектору, то щелчок будет сделан по первому из них.

Очень хорошо то, что инструменты разработчика Google Chrome позволяют, без особых сложностей, определить селектор конкретного элемента. Для того, чтобы это сделать, достаточно щёлкнуть правой кнопкой мыши по изображению и выбрать команду Inspect (Просмотреть код).

Эта команда откроет панель Elements (Элементы), в которой будет представлен код страницы, фрагмент которого, соответствующий интересующему нас элементу, будет выделен. После этого можно щёлкнуть по кнопке с тремя точками слева и в появившемся меню выбрать команду Copy → Copy selector (Копировать → Копировать селектор).

Отлично! Теперь у нас имеется селектор и всё готово для того, чтобы сформировать метод click и вставить его в программу. Вот как это будет выглядеть:

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

На этой новой странице нас интересует название книги и её цена. Они выделены на нижеприведённом рисунке.

Для того, чтобы добраться до этих значений, мы будем пользоваться методом page.evaluate() . Этот метод позволяет использовать методы JavaScript для работы с DOM, наподобие querySelector() .

Для начала вызовем метод page.evaluate() и присвоим возвращённое им значение константе result :

В этой функции мы можем выбирать необходимые элементы. Для того, чтобы понять, как описать то, что нам нужно, снова воспользуемся инструментами разработчика Chrome. Для этого щёлкнем правой кнопкой по названию книги и выберем команду Inspect (Просмотреть код).

В панели Elements (Элементы) можно увидеть, что название книги — это обычный заголовок первого уровня, h1 . Выбрать этот элемент можно с помощью следующего кода:

Так как нам нужен текст, содержащийся в этом элементе, нам понадобится воспользоваться свойством .innerText . В итоге приходим к следующей конструкции:

Такой же подход поможет нам выяснить то, как взять со страницы цену книги.

Можно заметить, что строчке с ценой соответствует класс price_color . Мы можем использовать этот класс для того, чтобы выбрать элемент и прочитать содержащийся в нём текст:

Теперь, когда мы вытащили со страницы название книги и её цену, мы можем возвратить всё это из функции в виде объекта:

В результате получается следующий код:

Здесь мы считываем со страницы название книги и цену, сохраняем их в объекте и возвращаем этот объект, что приводит к записи его в result .

Теперь осталось лишь вернуть константу result и вывести её содержимое в консоль.

Полный код этого примера будет выглядеть так:

Теперь можно запустить программу с помощью Node:

Если всё сделано правильно, в консоль будет выведено название книги и её цена:

Собственно говоря, всё это и есть веб-скрапинг и вы только что сделали первые шаги в этом занятии.

Пример №3: улучшаем программу

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

Ответ на эти вопросы заключается в том, что существует множество подходов к веб-скрапингу! К тому же, если ограничиться данными, выводимыми на домашней странице, можно столкнуться с тем, что названия книг будут укорочены. Однако, все эти размышления дают вам отличную возможность попрактиковаться.

▍Задача

Ваша цель — считать все заголовки книг и их цены с домашней страницы и вернуть их в виде массива объектов. Вот какой массив получился у меня:

Можете приступать. Не читайте пока дальше, попробуйте сделать всё сами. Надо сказать, что эта задача очень похожа на ту, которую мы только что решили.

Получилось? Если нет — тогда вот подсказка.

▍Подсказка

Главное отличие этой задачи от предыдущего примера заключается в том, что тут нам надо пройтись по списку данных. Вот как это можно сделать:

Если и сейчас вам не удаётся решить задачу, в этом нет ничего страшного. Это — вопрос практики. Вот один из возможных вариантов её решения.

▍Решение задачи

Итоги

Из этого материала вы узнали о том как пользоваться браузером Google Chrome и библиотекой Puppeteer для создания системы веб-скрапинга. А именно, мы рассмотрели структуру кода, способы программного управления браузером, методику создания копий экрана, методы имитации работы пользователя со страницей и подходы к чтению и сохранению данных, размещаемых на веб-страницах. Если это было ваше первое знакомство с веб-скрапингом, надеемся, теперь у вас есть всё необходимое для того, чтобы вытащить из интернета всё, что вам нужно.

Уважаемые читатели! Пользуетесь ли вы библиотекой Puppeteer и браузером Google Chrome без пользовательского интерфейса?

Wildfire — автоматизация любых действий в браузере Chrome

Фото автора Дмитрий Горчаков

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

Основная функция Wildfire — запись последовательности ваших действий в браузере, а затем их повторение. При этом расширение способно распознавать и воспроизводить практически любую операцию, в том числе создание новых вкладок, клик любой кнопкой мыши, переход по ссылке, обновление страницы.

После установки расширения в панели инструментов браузера появится новая иконка. При нажатии на неё открывается всплывающее окно с двумя кнопками. Для начала записи макроса нажмите на кнопку Start Recording. Иконка расширения станет красного цвета, и вы сможете выполнить все операции, которые хотите записать. Для окончания записи нажмите на кнопку Stop Recording.

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

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

Если записанный макрос вы планируете использовать в дальнейшем, то необходимо сохранить его в избранном. Для этого щёлкните по кнопке со звёздочкой на панели инструментов редактора макросов и задайте имя для сценария. Сохранённый макрос можно найти в разделе Settings на вкладке Favorites. На соседней вкладке Scheduled можно задать время запуска макроса и указать интервал повторения.

Wildfire — удобный инструмент, благодаря которому не нужно каждый раз повторять одни и те же действия. Его можно использовать как для полезных действий, например тестирования сайтов, так и для накрутки просмотров и спама. Надеемся, что вы сделаете правильный выбор.

Современная Веб-Автоматизация при Помощи Python и Selenium

В данной статье вы изучите продвинутую технику веб-автоматизации в Python. Мы используем Selenium с браузером без графического интерфейса, экспортируем отобранные данные в CSV файлы и завернем ваш отобранный код в класс Python.

Содержание

1. Мотивация: отслеживаем музыкальные привычки

Предположим, что вы время от времени слушаете музыку на bandcamp.com или soundcloud и вам хочется вспомнить название песни, которую вы услышали несколько месяцев назад.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

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

«Было бы классно», думаете вы «Если бы у меня запись моей истории прослушиваний. Я мог бы просто взглянуть на электронную музыку, которую я слушал пару месяцев назад и найти эту песню!»

Сегодня мы создадим простой класс Python под названием BandLeader, который подключается к bandcamp.com, стримит музыку из раздела «Найденное» на главной странице, и отслеживает вашу историю прослушиваний.

История прослушиваний будет сохранена на диске в CSV файле. Далее, вы можете в любой момент просматривать CSV файл в вашей любимой программе для работы с таблицами, или даже в Python.

Если у вас есть опыт в веб-парсинга в Python, то вы знакомы с созданием HTTP запросами и использованием API Python для навигации в DOM. Сегодня мы затронем все эти пункты, за одним исключением.

Сегодня вы используете браузер в режиме без графического интерфейса (режим «командной строки») для выполнения запросов HTTP.

Консольный браузер – это обычный веб браузер, который работает без видимого пользовательского интерфейса. Как вы могли догадаться, он может делать больше, чем выполнять запросы: проводить рендер HTML (правда, вы этого не будете видеть), хранить информацию о сессии, даже проводить асинхронные сетевые связи на коде JavaScript.

Если вы хотите автоматизировать современную сеть, консольные браузеры – неотъемлемая часть.

Бесплатный бонус: Скачайте основу проекта Python+Selenium с полным исходным кодом, который вы можете использовать как основу для вашего веб-парсинга в Python и автоматических приложениях.

2. Установка и Настройка Selenium

Первый шаг, перед тем как написать первую строчку кода – это установка Selenium с поддержкой WebDriver для вашего любимого браузера. Далее в статье мы будем работать с Firefox Selenium, но Chrome также будет отлично.

По выше указанным ссылкам имеется полное описание процесса установки драйверов для Selenium.

Далее, нужно установить Selenium при помощи pip, или как вам удобнее. Если вы создали виртуальное пространство для этого проекта, просто введите:

Похожие статьи