2013-07-15 3 views
4

Я хочу использовать selenium/webdriver для имитации браузера и очистки некоторых веб-сайтов с ним. Даже если это не самый быстрый метод, для меня он имеет много преимуществ, таких как выполнение скриптов и т. Д.Автоматизация браузера с селеном: Отпечатки пальцев, узнаваемость и прослеживаемость?

Для многих сайтов запрещено доступ к ним с помощью автоматизированного метода, например поисковых систем, таких как Google или Bing.

Для одного инструмента мне нужно очистить оценочный результат из Google для нескольких ключевых слов. Это будет выглядеть следующим образом: имитировать браузер, который посещает google.com, и вводит в него ключевое слово, а затем обрабатывает результаты, затем после небольшого типа паузы в следующем ключе, очищает результаты и т. Д. ...

My вопрос: возможно ли, чтобы веб-сайт узнал, что я использую селен для имитации браузера вместо использования браузера вручную? Особенно случай Google вызывает некоторые сомнения. Я знаю, что селен частично разработан Google или, по крайней мере, некоторыми парнями, работающими в Google. Таким образом, оставляют селен некоторые отпечатки пальцев или не удается решить, пользуюсь ли я браузером самостоятельно или моделируется селеном, даже для google?

ответ

3

Нет, никто не может увидеть, что вы используете Selenium, а не вручную используете браузер самостоятельно с помощью WebDriver. Я не уверен в старой Selenium RC, но это должно быть так же. Вот как это работает:

  1. Селен открывает браузер с чистым профилем (или с профилем вы выбрали)
  2. Селена подключаются к браузеру, чтобы он мог управлять, контролировать. Но браузер все еще выполняет большую часть работы. В основном, Selenium заменяет пользовательские входы на браузер, но не более.

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

Если вам действительно нужен Selenium для распознавания вашим сервером, вы можете use Browsermob-proxy и add a custom header to your requests.


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


EDIT 2016/04:

Apparanetly это является можно как https://stackoverflow.com/a/33403473/2930045 гласит, что компания может сделать это. Моя догадка - и это не что иное, как догадка - это то, что они могут запускать некоторые JS, которые Selenium устанавливает в браузер для работы.

+1

Thx для ответа это было действительно ясно. Прежде чем отметить это как принято, я подожду некоторое время, возможно, есть и другие мнения. Не поймите меня неправильно, мне нравится ваш ответ, но, возможно, есть и другие невидимые методы распознавания селена, особенно для google, потому что я могу представить его в их интересах распознавать автоматизированные браузеры. Большое спасибо!! – zwieback86

+0

Привет, Сланец, сегодня я попробовал webdriver для firefox, и я заметил текст «webdriver» в нижнем правом углу, а также увидел, что установлен аддон под названием «Firefox Webdriver 2.33.0». Это сделало меня как-то подозрительным. Вы действительно уверены, что на веб-странице не видно, какие аддоны я использую в своем firefox? Я не понимаю смысл этого знака «webdriver» в строке состояния? – zwieback86

+0

@ zwieback86 Нет, никто не может обнаружить ваш плагин Firefox (если ваш плагин не делает это преднамеренно возможным). См. Http://stackoverflow.com/questions/5067375/detecting-my-own-firefox-extension-from-a-webpage и/или http://webdevwonders.com/detecting-firefox-add-ons/. –

1

Знаки указывают на да, сайты могут реорганизовать то, что вы используете Selenium.
Счетчик Пример: www.stubhub.com обнаруживает и блокирует мой экземпляр браузера, запущенный с использованием Selenium, в то время как «обычный» просмотр выполняется вручную (не используя браузер, запущенный веб-драйвером Selenium) работает без проблем.

Смотрите этот StackOverflow вопрос для получения дополнительной информации Can a website detect when you are using selenium with chromedriver?