Pull to refresh

Comments 41

И все это для того, чтобы обмануть и поисковые системы, и, что самое главное, людей, которые будут этими системами пользоваться? Это же подлость, разве нет?
А потом будут статьи с заголовками из оперы «Как мы убиваем интернет»
К сожалению, такой статьи в УК нет. А эволюционно механизм «обмануть себе подобного» не вытравился.
Учитывая, что все остальные участники рынка применяют те же методы, да еще и проплачивают поисковикам за высокие места, это не подлость, а здоровая конкуренция программеров
Учитывая, что все остальные участники рынка применяют те же методы, да еще и проплачивают поисковикам за высокие места, то они совершают точно такую же подлость, как и автор этой статейки.
Вы затронули две очень интересные темы. Каждый из прочитавших статью ответит для себя на эти вопросы. Составит свое мнение. И я очень буду признателен за выражение любого мнения в комментариях.

Однако умение разбирать и собирать автомат Колашникова не всегда свидетельствует о подлости умеющего либо о его намерении грабить банк.

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

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

Я предлагаю подождать.
И еще раз спасибо за Ваш взгляд.
Возможно сделать headless-режим? ЧТобы запускать где-нибудь на vps?
вопрос предполагал совет конкретных шагов
Для реализации запуска где-нибудь на VPS Вам потребуется:
  1. Арендовать два VPS;
  2. Связать их по VPN;
  3. На одном выполнить инструкции «process»;
  4. На другом выполнить инструкции «docker»;
  5. Ограничить доступы к TCP портам, перечисленным в инструкции для всех кроме VPN-адресов.


Дать задание в консоле «process» машины.

Мы, наверное друг друга не поняли. Вы когда селениум поднимаете — он у вас окно открывает? Если да, как можно в headless mode запускать, потому что запускать окошко селениум вроде не давал когда монитора нет?

Мы, наверное друг друга не поняли.

Наверное...) Давайте разбираться вместе.

В подробном описании установки clicker и docker-инфраструктуры из репозитория либо в инструкции в тексте статьи (она чуть короче), все действия производятся в командной строке машин, на борту которых установлена Ubuntu 18.04 в компановке SERVER.

Нигде в процессе установки не используются какие-либо графические рабочие столы.

Selenim Server поднимается внутри одного из Docker-контенеров. В этом контейнере присутствует VNC-сервер.

Если Вас интересует конфигурация docker-контейнера без возможности посмотреть на работу Chrome, то рядом лежит ровно такой же, но без VNC. Он менее «прожорлив».

При выполнении инструкций, все происходит автоматически. После старта вам доступны веб-панели. В одну из них встроен VNC-клиент (это больше в отладочных целях и для наглядности).

Самый простой способ поверить — попробовать.
Для этого Вам потребуется: пара евро, мобильный телефон, 3 часа времени.

Получите свои сервера в аренду, затратив на это 2 часа и деньги (например, здесь).

Еще час Вы потратите на перечитывание и выполнение инструкции. Выдача заданий по проверке прокси не займет и 10 минут.

Если я правильно понял Ваши вопросы, то ответы должны подойти и дать недостающие части в «картинку».

В любом случае, я признателен Вам за интерес и внимание к деталям. Если в моих ответах что-то осталось за «кадром» — спрашивайте.
UFO just landed and posted this here
Ну, можно подвергнуть Максима Валерьевича какой-нибудь оптимизации посредством размещения адреса его сайта и контактных данных на сомнительных ресурсах удручающего содержания.
А это не подлость?
С одной стороны — да, а с другой — праведный народный гнев. Тонкая грань.
UFO just landed and posted this here
Да нет, распространение в таком виде персональных данных уже ближе к УК.
Ваша оценка статьи, Ваша оценка поступков Максима Валерьевича либо Ваша оценка чьих-либо поступков — это всегда определенный знак качества.

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

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

Selenium Server — позволяет управлять Google Chrome. Selenium-Chrome-программный клик ничем не отличается от Chrome-человеческого.

Google Chrome позволяет корректно выполнять все JS сайта (включая и счетчики), сохранять сессионные куки (при надобности).

Но статья не совсем о парсинге с исполнение JS в браузере. Это всего лишь сюжет.
Такой сюжет понятен определенной аудитории. Достаточно широкой.

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

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

Что касается расширения chrome… Можно, но для большинства задач проще это сделать на «родном языке». В противном случае Selenium не получил бы такого распространения (он адаптирован ко множеству языков), а все функциональные тесты интерфейса писались бы тем способом, что Вы предположили.

Относительно кода счетчика…
Что делает код счетчика Вашей страницы можно изучать. Но известно одно. Он должен отработать корректно. Поэтому использовать обычный CURL — может быть неэффективным решением.
Всю вашу МОМ архитектуру можно засунуть в воркеры расширения. Проста непонятно для чего городить докеры, селениумы, вводить php — только для клика?
Selenium-Chrome-программный клик ничем не отличается от Chrome-человеческого.
Вы так в этом уверены? Как-то я играл с автоматизаторами мыши и клавиатуры для кликов в браузере, там было близко к человеческому, а тут Селениум драйвер так-то не скрывает даже ни от кого, что он автомат.
В этой статье показан пример подхода, позволяющего построить масштабируемую систему.
Некий этюд на архитектурные темы…

Как пример процесса который реализует система, выбрана след. последовательность действий (все это более подробно описано на схеме, приведенной в статье):
  1. проверка работоспособности прокси;
  2. определение часового пояса прокси;
  3. конфигурирование браузера;
  4. проверка анонимности настроек, путем получения тестовой страницы сконфигурированным браузером, находящимся по управлением системы

Это ответ на Ваш первый вопрос.

Что касается моей уверенности…
Я не знаю инструментов, доступных Java Script (запущенному во вкладке браузера), которые позволили бы оценить параметры двигающего мышкой.

Исключение составляют замеры времени и оценка промежуточных положений курсора. Однако, для осуществления полной эмуляции поведения пользователя у Selenium достаточно инструментов.

В этом причина моей уверенности.

Я буду признателен любому, кто меня разубедит.
Проверьте Selenium на reCapcha2 (3) для начала
Я поторопился и ответил насчет антикапчи в другой ветке.

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

Довольно сносно.
Описанный метод не дает никаких преимуществ с точки зрения SEO и имеет множество недостатков:
1. Все эти «клики» видны невооружённым взглядом в любой системе аналитики
2. Ломает статистику, особенно по действиям пользователей на сайте
3. Любая адекватная антифрод-система блокирует такие запросы

Я много работаю с рекламными системами и почти каждый день вижу подобные попытки прикинуться человеком. Постоянно блокируем по subid.
Огромное подспорье, что Вы заглянули сюда «с другой стороны баррикад».

Уверен, что altrus и все те кому интересна «сюжетная составляющая» моей статьи с удовольствием увидят подробности Вашего комментария. Все мы будем признательны Вам за подробное обоснование Вашей позиции.

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

Его позиция заключалась примерно в том, что современные системы защиты сильно превосходят возможности передовых SEO-специалистов. И с ZenoPoster (один из очень распространенных инструментов для таких задач) — не получается. Моя же в том, что я не настоящий SEO, что хочу попытать счастье и понять как это все устроено.

Обыкновенный PHP-curl и через неделю защита пала (причудливая комбинация из эмуляции аякс-запросов и куки сделала свое дело). Еще неделя и все окружение (включая ресурс Антикапчи, подбора фейковых имен и создание временной почты заработало как «револьвер системы НАГАН»).

Еще несколько дней и все это заработало с управляемыми прокси на выходе. Можно было TOR использовать можно купленные прокси. Что угодно…

Какие-то регистрации не преуспели, но… процент потерь составил меньше четверти. Я зарегистрировал 2017 полноправных аккаунтов. И многое понял.

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

Ну у меня задача прозаичней была когда-то.
Я брал открытые данные с одного сайта, и мне надо было брать их часто, а владельцу сайта не нравилось, когда часто, и он блокировал по IP, и тогда я задумался о бесплатных проксях с их проверкой и использованием. Поэтому статья привлекла внимание. Так что отдельные вещи из нее можно применять безо всякого криминала или «подлостей»

Точно также полагаю, что нужно менять много параметров, чтобы хорошо спрятаться.
Очень хочется подтвердить Ваше предположение. Думаю, многие ждут, что igorgusarov разовьет созданную интригу.
«Я беру, то что владелец не хочет давать» — без криминала.
«Я обманываю владельца и все равно беру, то что он не хочет давать выдавая себя за другого» — и без подлостей…
А Вы молодец, хорошая картинка мира.

По существу решаемой Вами задачи: что мешало, 1 раз спарсить сайт себе в базу и потом спокойно с ней работать? Тем более, что данные открытые, почему сами их не собирали, а обращались за ними к какому-то сайту, на котором они могли бы быть заведомо искаженны? Один из методов защиты, от подобного: не блокировать IP, а запоминать IP и некоторое время слать на него псевдо-валидные данные.
А в кавычках у вас — это прямая речь? Чья?
Очевидно моя, Вы же такого не говорили. Намекаете что после кавычек я должен был писать: — сказал я.?

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

«Так подумали остальные» — сказал altrus. Вы телепат?
Selenium где-то там ставит переменную доступную из javascript'a (или это geckodriver делает? точно не скажу)
Ну т.е. сайт без проблем понимает, что его из селениума смотрят и блокировать должен.
А PhantomJS специфически формирует headers, что тоже его палит.
+ еще есть fingerprint железа на котором запущен браузер
+ еще при скачивании chrome google прописывает в него уникальный ID
Я надеюсь вы его не со своего домашнего IP скачивали прежде чем докер собрать? А то тут американцы недавно заявляли о победе над ботнетом для скликивания рекламы.
Так что если вы желаете получить реальную анонимность, то придется писать свой аналог Selenium.
Все эти пункты не важны для мелких сайтов, а вот если вы хотите потягаться с большими интернет-гигантами оснащенными ML-антифродом, то…
Ну вот интрига и разрешена. Спасибо! )

Я надеюсь вы его не со своего домашнего IP скачивали прежде чем докер собрать? :)

Конечно со своего. Однако задача демонстрируемой системы — просеять прокси.
Для чего все это использовать и использовать ли — личный выбор каждого.

> личный выбор каждого.
К сожалению, не совсем так. Подозреваю, что PhantomJS забросили из-за трудностей с законом (но это не точно)
webdriver=«true» он в html добавлял раньше, как сейчас, не в курсе.
Спасибо за грамотную статью. Было реально интересно.
Есть вопрос не по главной части статьи:
Есть различные библиотеки для построения fingerprint посетителя. Selenium сможет выдавать разные типы/названия оборудования (и тп) у фейкового посетителя? Насколько я понимаю, при построении отпечатка посетителя, используется различная информация, в том числе и эта.
Sign up to leave a comment.

Articles