Ich habe Selenium mit Chromedriver getestet und festgestellt, dass einige Seiten erkennen können, dass Sie Selenium verwenden, obwohl es überhaupt keine Automatisierung gibt. Selbst wenn ich nur manuell mit Chrom über Selenium und Xephyr surfe, wird häufig eine Seite angezeigt, auf der verdächtige Aktivitäten festgestellt wurden. Ich habe meinen Benutzeragenten und meinen Browser-Fingerabdruck überprüft und sie sind alle genau identisch mit dem normalen Chrome-Browser.
Wenn ich in normalem Chrom zu diesen Websites navigiere, funktioniert alles einwandfrei, aber sobald ich Selenium verwende, werde ich erkannt.
Theoretisch sollten Chromedriver und Chrome für jeden Webserver buchstäblich genau gleich aussehen, aber irgendwie können sie es erkennen.
Wenn Sie einen Testcode wünschen, probieren Sie Folgendes aus:
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')
Wenn Sie sich in stubhub umsehen, werden Sie innerhalb von ein oder zwei Anfragen umgeleitet und "blockiert". Ich habe dies untersucht und kann nicht herausfinden, wie sie feststellen können, dass ein Benutzer Selen verwendet.
Wie machen Sie das?
UPDATE BEARBEITEN:
Ich habe das Selenium IDE-Plugin in Firefox installiert und wurde gesperrt, als ich im normalen Firefox-Browser mit nur dem zusätzlichen Plugin zu stubhub.com ging.
BEARBEITEN:
Wenn ich Fiddler verwende, um die hin und her gesendeten HTTP-Anforderungen anzuzeigen, ist mir aufgefallen, dass die Anforderungen der gefälschten Browser häufig den Antwort-Header "no-cache" enthalten.
BEARBEITEN:
Ergebnisse wie dieses Gibt es eine Möglichkeit zu erkennen, dass ich mich auf einer Selenium Webdriver-Seite von Javascript befinde? Es gibt keine Möglichkeit zu erkennen, wann Sie einen Webdriver verwenden. Aber diese Beweise deuten auf etwas anderes hin.
BEARBEITEN:
Die Site lädt einen Fingerabdruck auf ihre Server hoch, aber ich habe überprüft, ob der Fingerabdruck von Selen mit dem Fingerabdruck bei Verwendung von Chrom identisch ist.
BEARBEITEN:
Dies ist eine der Fingerabdruck-Nutzdaten, die sie an ihre Server senden
{"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 ist identisch in Selen und in Chrom
BEARBEITEN:
VPNs funktionieren nur einmal, werden jedoch erkannt, nachdem ich die erste Seite geladen habe. Offensichtlich wird etwas Javascript ausgeführt, um Selen zu erkennen.
distill
Erkennungstechnologie bietet und liefert Inhalte mit akamaitechnologies.com
CDN von diffrent ips zB 95.100.59.245
, 104.70.243.66
,23.202.161.241