Я тестировал Selenium с помощью Chromedriver и заметил, что некоторые страницы могут обнаружить, что вы используете Selenium, хотя автоматизации вообще нет. Даже когда я просто просматриваю вручную, используя Chrome, через Selenium и Xephyr, я часто получаю страницу с сообщением об обнаружении подозрительной активности. Я проверил свой пользовательский агент и отпечаток моего браузера, и все они точно идентичны обычному браузеру Chrome.
Когда я захожу на эти сайты в обычном chrome, все работает нормально, но в тот момент, когда я использую Selenium, меня обнаруживают.
В теории chromedriver и chrome должны выглядеть буквально одинаково для любого веб-сервера, но каким-то образом они могут это обнаружить.
Если вам нужен тестовый код, попробуйте это:
from pyvirtualdisplay import Display
from 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 'arguments done'
driver.get('http://stubhub.com')
Если вы просматриваете stubhub, вы будете перенаправлены и заблокированы в течение одного или двух запросов. Я исследовал это, и я не могу понять, как они могут сказать, что пользователь использует Selenium.
Как они это делают?
РЕДАКТИРОВАТЬ ОБНОВЛЕНИЕ:
Я установил плагин Selenium IDE в Firefox, и меня забанили, когда я зашел на stubhub.com в обычном браузере Firefox только с дополнительным плагином.
РЕДАКТИРОВАТЬ:
Когда я использую Fiddler для просмотра HTTP-запросов, отправляемых взад и вперед, я заметил, что запросы «поддельного браузера» часто имеют «no-cache» в заголовке ответа.
РЕДАКТИРОВАТЬ:
Результаты, подобные этому. Есть ли способ обнаружить, что я на странице Selenium Webdriver из Javascript, предположить, что не должно быть способа обнаружить, когда вы используете веб-драйвер. Но это свидетельствует об обратном.
РЕДАКТИРОВАТЬ:
Сайт загружает отпечаток пальца на свои серверы, но я проверил и отпечаток селена идентичен отпечатку пальца при использовании хрома.
РЕДАКТИРОВАТЬ:
Это одна из полезных нагрузок отпечатков пальцев, которую они отправляют на свои серверы.
{"appName":"Netscape","platform":"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":"FutureSplashPlayerapplication/futuresplash","3":"WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm","4":"NativeClientExecutableapplication/x-nacl","5":"PortableNativeClientExecutableapplication/x-pnacl","6":"PortableDocumentFormatapplication/x-google-chrome-pdf"},"screen":{"width":1600,"height":900,"colorDepth":24},"fonts":{"0":"monospace","1":"DejaVuSerif","2":"Georgia","3":"DejaVuSans","4":"TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono","9":"NimbusMonoL","10":"CourierNew","11":"Courier"}}
Его идентично по селену и хрому
РЕДАКТИРОВАТЬ:
VPN работают для одноразового использования, но обнаруживаются после загрузки первой страницы. Очевидно, что какой-то javascript используется для обнаружения Selenium.
distill
технологию обнаружения бота и доставляет контент с помощью akamaitechnologies.com
CDN от diffrent изобр например 95.100.59.245
, 104.70.243.66
,23.202.161.241