He estado probando Selenium con Chromedriver y noté que algunas páginas pueden detectar que estás usando Selenium a pesar de que no hay ninguna automatización. Incluso cuando estoy navegando manualmente solo usando Chrome a través de Selenium y Xephyr, a menudo recibo una página que dice que se detectó actividad sospechosa. Revisé mi agente de usuario y la huella digital de mi navegador, y todos son exactamente idénticos al navegador Chrome normal.
Cuando navego por estos sitios en Chrome normal, todo funciona bien, pero en el momento en que uso Selenium me detectan.
En teoría, chromedriver y chrome deberían verse literalmente exactamente igual para cualquier servidor web, pero de alguna manera pueden detectarlo.
Si quieres un código de prueba prueba esto:
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')
Si navega por stubhub, será redirigido y 'bloqueado' dentro de una o dos solicitudes. He estado investigando esto y no puedo entender cómo pueden decir que un usuario está usando Selenium.
¿Cómo lo hicieron?
EDITAR ACTUALIZACIÓN:
Instalé el complemento Selenium IDE en Firefox y me prohibieron cuando fui a stubhub.com en el navegador normal de Firefox con solo el complemento adicional.
EDITAR:
Cuando uso Fiddler para ver las solicitudes HTTP que se envían de un lado a otro, he notado que las solicitudes de 'navegador falso' a menudo tienen 'sin caché' en el encabezado de respuesta.
EDITAR:
resultados como este ¿Hay alguna forma de detectar que estoy en una página de Selenium Webdriver desde Javascript? sugiere que no debería haber forma de detectar cuando está utilizando un webdriver. Pero esta evidencia sugiere lo contrario.
EDITAR:
El sitio carga una huella digital en sus servidores, pero lo verifiqué y la huella digital de selenio es idéntica a la huella digital cuando se usa Chrome.
EDITAR:
Esta es una de las cargas útiles de huellas digitales que envían a sus servidores
{"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"}}
Es idéntico en selenio y en cromo.
EDITAR:
Las VPN funcionan para un solo uso, pero se detectan después de cargar la primera página. Claramente, se está ejecutando javascript para detectar Selenium.
distill
tecnología de detección de bot y ofrece contenido utilizando akamaitechnologies.com
CDN de diferentes ips 95.100.59.245
, por ejemplo 104.70.243.66
,23.202.161.241