J'ai testé Selenium avec Chromedriver et j'ai remarqué que certaines pages peuvent détecter que vous utilisez Selenium même s'il n'y a aucune automatisation. Même lorsque je navigue simplement manuellement en utilisant Chrome via Selenium et Xephyr, je reçois souvent une page disant qu'une activité suspecte a été détectée. J'ai vérifié mon agent utilisateur et mon empreinte digitale de navigateur, et ils sont tous exactement identiques au navigateur Chrome normal.
Lorsque je navigue sur ces sites en chrome normal, tout fonctionne bien, mais au moment où j'utilise Selenium, je suis détecté.
En théorie, chromedriver et chrome devraient avoir exactement la même apparence pour tout serveur Web, mais d'une manière ou d'une autre, ils peuvent le détecter.
Si vous voulez du code de test, essayez ceci:
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 vous parcourez stubhub, vous serez redirigé et «bloqué» dans une ou deux demandes. J'ai enquêté sur cela et je ne peux pas comprendre comment ils peuvent dire qu'un utilisateur utilise Selenium.
Comment font-ils?
MODIFIER LA MISE À JOUR:
J'ai installé le plugin Selenium IDE dans Firefox et j'ai été banni lorsque je suis allé sur stubhub.com dans le navigateur Firefox normal avec uniquement le plugin supplémentaire.
ÉDITER:
Lorsque j'utilise Fiddler pour afficher les requêtes HTTP envoyées d'avant en arrière, j'ai remarqué que les demandes de «faux navigateur» ont souvent «sans cache» dans l'en-tête de la réponse.
ÉDITER:
des résultats comme celui - ci Existe - t-il un moyen de détecter que je suis dans une page Selenium Webdriver à partir de Javascript suggère qu'il ne devrait y avoir aucun moyen de détecter lorsque vous utilisez un webdriver. Mais ces preuves suggèrent le contraire.
ÉDITER:
Le site télécharge une empreinte digitale sur leurs serveurs, mais j'ai vérifié et l'empreinte digitale du sélénium est identique à l'empreinte digitale lors de l'utilisation du chrome.
ÉDITER:
Il s'agit de l'une des charges utiles d'empreintes digitales qu'ils envoient à leurs serveurs.
{"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"}}
Son identique en sélénium et en chrome
ÉDITER:
Les VPN fonctionnent pour un usage unique mais sont détectés après le chargement de la première page. De toute évidence, certains javascript sont en cours d'exécution pour détecter le sélénium.
distill
technologie de détection de bots et fournit du contenu en utilisant akamaitechnologies.com
CDN de diffrent ips par exemple 95.100.59.245
, 104.70.243.66
,23.202.161.241