Создавая свою небольшую армию ботов, мы иногда начинаем задаваться вопросом, куда тратится оперативная память и почему загрузка процессора постоянно на 100%? Все же, хотелось бы оставлять работать ботов круглосуточно и семь дней в неделю, не боясь, что один из них зависнет или закрашит браузер.
Обычный ненастроенный Firefox за 24 часа работы начинает потреблять по 1-2 Гб оперативной памяти. Это очень-очень много. Если у нас работает один бот — то это еще терпимо, но если у нас запущено сразу 20-30 ботов, то это становится критично. На моем компьютере 16 Гб оперативки, с настроенным Firefox я могу запускатьт 30-50 ботов спокойно на одной машине(процессор у меня мощный 4-х ядерный — Core i7 6700 3.4Ghz). Через сутки работы, каждый процесс жрет по 350-500 Мб памяти.
Создание профилей в Firefox 35
Если неохота разбираться — вы можете сразу скачать мою оптимизированную версию Firefox 35.
Для наших iMacros-ботов мы будем использовать не самую актуальную версию браузера Firefox. Она шустрее и менее прожорливая, чем последние версии этого браузера.
Небольшое примечание: до 39 версии FF присутствует 0-day уязвимость в библиотеке для чтения PDF-файлов — pdf.js.
- Качаем портабельную версию Firefox 35 отсюда — portableapps.com
- Давайте создадим папку под все наши ботоводные дела на диске с:(используйте именно диск c: — потом удобнее будет разворачивать ботофермы на VPS\VDS)
C:\BOTS\ - Установите FireFox в папку C:\BOTS\ff35\
- Заходим в папку C:\BOTS\ff35\App\Firefox и удаляем следующие файлы:
maintenanceservice.exe
maintenanceservice_installer
updater.exe
updater.ini
update-settings.ini - Кликаем правой кнопкой мыши на файле firefox.exe и жмякаем «Создать ярлык». Открываем свойства созданного ярлыка и в поле «Объект» прописываем
C:\BOTS\ff35\App\Firefox\firefox.exe -no-remote -profile "C:\BOTS\ff35\App\DefaultData\profiles\default"
default — это будет имя нашего профиля.
Примечание: если без создания профилей запустить несколько окон Firefox и в каждом из них iMacros-скрипт — то скрипты одновременно не будут работать, поскольку будет один процес firefox.exe на все окна. Чтобы в каждом окне обрабатывать разные макросы мы используем флаг «-no-remote», на самом деле это небольшой хак, но он позволяет запускать для каждого профиля свой отдельный процесс. - Заходим в папку C:\BOTS\ff35\App\DefaultData и создаем в ней папку profiles
- После запуска браузера через ярлык, у нас автоматом создастся папка C:\BOTS\ff35\App\DefaultData\profiles\default
- Теперь мы можем копировать эту папку default много раз, не забывая переименовывать, чтобы создать кучу профилей.
Настройка быстродействия Firefox 35
- Тыкаем по созданному ярлыку(обязательно по ярлыку, а не по файлу firefox.exe) и у нас открывается браузер — лезем сразу в Настройки(Options).
- Основные настройки:
- Во вкладке Безопасность(Privacy) выключаем отслеживание(tracking)
- В расширенных настройках, делайте, как на скринах:
- Скачиваем iMacros 8.9.7 — эта версия самая стабильная, в более новых версиях(9+) есть различные критичные проблемы для написания кода.
Далее идем в расширения, там нажимаем на шестеренка и выбираем «Установку расширения из файла«. Также убираем галочку автоматического обновления расширений. Мы устанавливаем расширение из файла не просто так. Помимо версии для ботоводства, я также для веб-разработки использую последнюю версию Firefox и там стоит другая версия iMacros. У меня раньше были проблемы, что при обновлении новой версии на более новую, также обновлялись плагины и иногда это каким-то образом сказывалось и на портабельной версии. Теперь же все прекрасно. - После установки iMacros — заходим в его настройки(либо жмем на «Опции» справа в списке расширений, либо в самом окошке iMacros)
На вкладке General — обязательно убираем галочку Show Javascript during replay(Показывать JS во время воспроизведения)
Также сделайте себе отдельную папкуc:\BOTS\iMacros
и пропишите ее во вкладке Path(Пути). Я не спроста прошу все-все складывать в одну папку, а не по умолчанию в «Мои Документы» — вам это в будущем сильно поможет при масштабировании, например, нужно будет быстро развернуть бота на VPS — вы просто скопируете всю папку и готово!
Жмем «Apply»(«Применить»). - Заходим
about:addons
— отключаем все-все плагины, должно быть вот так, у вас список плагинов может отличаться: - Скачайте и установите расширение FasterFox. По умолчанию — там в настройках стоит максимальная производительность.
- Заходим в about:config и там добавляем ключ типа Boolean config.trim_on_minimize, присваиваем ему значение true.
- Там же меняем значения некоторых ключей:
media.peerconnection.enabled = false — так мы отключим WebRTC, через который можно спалить ваш настоящий ip, даже если вы используете прокси(проверить утечку)
Теперь только-только запущенный браузер с пустой вкладкой жрет 64 Мб, я добавил еще FireBug, это увеличило стартовый расход памяти на 10 Мб.
Вместо Firefox вы можете использовать браузер PaleMoon — он создан на том же движке, что и FireFox, и поддерживает те же расширения. О нем я напишу в другой раз.
Если вам лень настраивать самому — вы можете Скачать настроенную и оптимизированную сборку Firefox 35(+iMacros+FireBug).
Жду ваши вопросы и дополнения в комментариях.
А версия готового для убунту линукс 16.04 не предвидится?))
Ну, вам никто не мешает настроить под юбунту по инструкции.
При 10 открытых окон ff с одной вкладкой (яндекс) процессор не нагружается вообще (1-3%), но как только я открываю сайт, который мне нужен во всех окнах, проц.(i5,3.3 ghz) нагружается на полную. Я уже и с помощью адблока удалил всю анимацию с сайта, и оставил только то, что мне нужно — все равно 100% нагрузка. Все посторонние процессы отключил. Может есть какие то решения, возможно, эмуляция браузера или что-то в этом роде, чтобы увелиличть производительность, ибо уже при 10 открытых окнах нереально работать из-за нагруженности процессора?
Будет ли статья про PaleMoon?
Иван, а смысл? Palemoon и так оптимизирован и настройки из статьи под него тоже подходят, поскольку palemoon сделан на том же движке.
а iMacros(a) в сборке нет))
что бы поставить на сервер, какой то специальный интерфейс нужен?
на компе макрос и браузер из под винды работают. на сервере как?
слухай, я конечно мог что то не так сделать..
настроил двух болтов — дефаулт и bot1 у меня
запустил. через какое то время смотрю, синхронно два окна работают(((
т.е. настройки не дали мне возможность запустить разных ботов.
подскажи возможные причины.
Да, в архиве идет обычная фф35 без аймакроса и фаербага(
У меня ONLOGIN перестал работать , переодически глючит, может есть другой способ вводить пароли от прокси ?
Есть идеи как реализовать чтобы каждый профиль брал свою переменную (например брал данные своего аккаунта из базы данных) , то есть запускался один скрипт на всех профилях, но номер профиля браузера соответствовал номеру аккаунта из базы?
kanabiozzz, у меня есть не только идея, но и реализация, можно брать данные из отдельных JSON-файлов или загружать настройки по ссылкам. Об этом чуть позже будет урок.
Расписывать тему не буду пока, но в гугле можешь поискать инфу про получение аргументов командной строки из iMacros. Получив их, можно определить по какому пути подгрузился профиль — а там уже дело техники.
спасибки
а как на русский перевести? а то чет через настройки не получается..
могли бы стразу сделать чтоб по закрытию последней вкладки не закрывался about:config
closeWindow
browser.tabs.closeWindowWithLastTab
переделать на false
Что то не выходит скормить имакросу одну папку и для макросов, и для датасырцов, и для папки загрузки.
Зачем использовать -no-remote -profile для создание папки с профилями и потом копировать папку defaul, если партабельной версии таким способом невозможно заставить одновремено работать есколько профилей.Допусти создал ярлык X:\ff35\FirefoxPortable.exe -no-remote -profile «X:\ff35\App\DefaultData\profiles\x1» и X:\ff35\FirefoxPortable.exe -no-remote -profile «X:\ff35\App\DefaultData\profiles\x2» запускаю первый потом второй и выскакивает сообщение что фаерфокс уже запущен.
onwaytar, Значит вы делаете что-то неправильно.Я подобным образом запускал 50 профилей, подобных сообщений не было и открывались разные профили.
Кажется, понял.
Вы запускает портабельную версию из лаунчера FirefoxPortable.exe. Его суть — показать фирменный сплеш-скрин от portableapps и запустить непосредственно firefox.exe. Не уверен, что он поддерживает параметры командной строки.
В статье я использую точно такую же портабельную версию.
Измените путь на с:\BOTS\ff35\App\Firefox\firefox.exe вместо FirefoxPortable.exe
Да , все имеено в этом было. Спасибо
Штука в том, что при подключении imacros+adblock+tab mix выходим на те же 300 мб оперативы, что и в обычной лисе. В чем же тогда выигрышь?
Так и в чём же?
Please upgrade to a supported browser to get a reCAPTCHA
challenge.
Why is this happening to me?
Как исправить проблему с капчей в настроенной и оптимизированной сборке Firefox 35(+iMacros+FireBug)