當您將 Selenium 與 chromedriver 一起使用時,網站可以檢測到嗎?

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

我一直在用 Chromedriver 測試 Selenium,我注意到有些頁面可以檢測到您正在使用 Selenium,即使根本沒有自動化。即使我只是通過 Selenium 使用 Chrome 手動瀏覽,並且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。

他們是如何做到的?

我在 Firefox 中安裝了 Selenium IDE 插件,但當我被禁止時在普通的 Firefox 瀏覽器中訪問 stubhub.com,只使用了附加插件。

當我使用 Fiddler 查看來回發送的 HTTP 請求時,我注意到“假瀏覽器”的請求通常在響應標頭中有“no-cache”。

這樣的結果 是有一種方法可以從 JavaScript 中檢測到我在 Selenium Webdriver 頁面中,這表明應該無法檢測到您何時使用 Webdriver。但這個證據表明並非如此。

該網站將指紋上傳到他們的服務器,但我檢查了 Selenium 的指紋與使用 Chrome 時的指紋相同。

這是其中之一他們發送到服務器的指紋有效負載:{“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”:“FutureSplashPlayerap plication/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},”字體”:{“0”:“等寬字體”,“1”:“DejaVuSerif”,“2”:“Georgia”,“3”:“DejaVuSans”,“4”:“ “TrebuchetMS”、“5”:“Verdana”、“6”:“AndaleMono”、“7”:“DejaVuSansMono”、“8”:“LiberationMono”、“9”:“ “NimbusMonoL”、“10”:“CourierNew”、“11”:“Courier”}}

它在 Selenium 和 Chrome 中是相同的。

VPN一次性使用,但他們得到在我加載第一頁後檢測到。顯然,正在運行一些 JavaScript 來檢測 Selenium。