Может ли веб-сайт определить, когда вы используете Selenium с chromedriver?

| | | | | | | | | | | | | | | | | | | | | | | | | |

Я тестировал Selenium с помощью Chromedriver и заметил, что некоторые страницы могут определять, что вы используете Selenium, даже при отсутствии автоматизации. Даже когда я просто просматриваю вручную, просто используя Chrome через Selenium и Xephyr Я часто получаю сообщение о том, что обнаружена подозрительная активность. Я проверил свой пользовательский агент и отпечаток моего браузера, и все они полностью идентичны обычному браузеру Chrome.

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

Теоретически chromedriver и Chrome должны выглядеть буквально одинаково для любого веб-сервера, но каким-то образом они могут его обнаружить.

Если вы хотите попробовать тестовый код это:

из pyvirtualdisplay import Display из selenium import webdriver display = Display(visible=1, size=(1600, 902)) display.start() chrome_options = webdriver.ChromeOptions() chrome_options. add_argument("--disable-extensions") chrome_options.add_argument("--profile-directory=Default") chrome_options.add_argument("--incognito") chrome_options.add_argument("--disable-plugins-discovery") ; chrome_options.add_argument("--start-maximized") driver = webdriver.Chrome(chrome_options=chrome_options) driver.delete_all_cookies() driver.set_window_size(800,800) driver.set_window_position(0,0) print "аргументы выполнены" driver.get ("http://stubhub.com") 

Если вы просматриваете stubhub, вы будете перенаправлены и "заблокированы" в течение одного или двух запросов. Я исследовал это, и я не могу понять, как они могут определить, что пользователь использует Selenium.

Как они это делают?

Я установил плагин Selenium IDE в Firefox, и меня забанили, когда я перешел на stubhub.com в обычном браузере Firefox только с дополнительным плагином.

Когда я использую Fiddler для просмотра HTTP-запросов, отправляемых туда и обратно, я заметил, что запросы «поддельного браузера» часто имеют "без кеша" в заголовке ответа.

Подобные результаты Является ли Способ определить, что я нахожусь на странице Selenium Webdriver из JavaScript предполагает, что не должно быть никакого способа определить, когда вы используете веб-драйвер. Но эти доказательства говорят об обратном.

Сайт загружает отпечаток пальца на свои серверы, но я проверил, и отпечаток пальца Selenium идентичен отпечатку пальца при использовании Chrome.

Это один из полезные данные отпечатков пальцев, которые они отправляют на свои серверы: {"appName":"Netscape","платформа":"Linuxx86_64","cookies":1,"syslang":"en-US", «userlang»: «en-US», «cpu»: «», «productSub»: «20030107», «setTimeout»: 1, «setInterval»: 1, «plugins»; :{"0":"ChromePDFViewer","1":"ShockwaveFlash","2":"WidevineContentDecryptionModule","3":"NativeClient","4":"ChromePDFViewer" ;},"mimeTypes":{"0":"application/pdf","1":"ShockwaveFlashapplication/x-shockwave-flash","2":"FutureSplashPlayerap plication/futureplash", "3": "WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm", "4": "NativeClientExecutableapplication/x-nacl", "5": "PortableNativeClientExecutableapplication/x-pnacl" ,"6":"PortableDocumentFormatapplication/x-google-chrome-pdf"}, "экран":{"ширина": 1600, "высота": 900, "Глубина цвета": 24}, " шрифты»: {«0»: «моноширинный», «1»: «DejaVuSerif», «2»: «Georgia», «3»: «DejaVuSans», «4»: « ;TrebuchetMS», «5», «Verdana», «6», «AndaleMono», «7», «DejaVuSansMono», «8», «LiberationMono», «9», «9». ;NimbusMonoL","10":"CourierNew","11":"Courier"}}

Они идентичны в Selenium и Chrome.

VPN работают на разовое использование, но получают обнаружен после загрузки первой страницы. Очевидно, для обнаружения Selenium запускается какой-то JavaScript.