2013-07-15 78 views
4

我想用selenium/webdriver來模擬一個瀏覽器,並用它刮掉一些網站內容。即使它不是最快的方法,對我來說它有許多優點,如執行腳本等。帶Selenium的瀏覽器自動化:指紋,可識別性和可追溯性?

對於很多網站來說,禁止通過自動方法訪問它們,例如google或bing等搜索引擎。

對於一個工具,我需要從谷歌的估計resultstat幾個關鍵字。這看起來像下面這樣:模擬訪問google.com的瀏覽器並鍵入關鍵字並刪除結果,然後在稍後暫停輸入下一個關鍵字,然後刪除結果等等...

我的問題是:網站是否有可能認識到我使用硒模擬瀏覽器而不是手動使用瀏覽器?特別是谷歌案件給了我一些疑慮。我知道硒部分是由谷歌開發的,或者至少有一些爲谷歌工作的人開發的。那麼,硒離開一些指紋還是不可能決定我自己使用瀏覽器還是硒模擬,即使是谷歌?

回答

3

不,沒有人能真正看到您使用Selenium,而不是使用WebDriver自己手動操作瀏覽器。我不確定舊的硒鋼筋混凝土,但它應該是一樣的。下面是它如何工作的:

  1. 硒開闢了一個乾淨的輪廓的瀏覽器(或用輪廓您選擇)
  2. 硒迷上了瀏覽器,因此它可以引導它,控制它。但瀏覽器仍然做大部分工作。基本上,Selenium將用戶輸入替換爲瀏覽器,但不是更多。

您可以通過閱讀瀏覽器發送的HTTP標頭的內容輕鬆驗證此內容。

如果您確實需要Selenium才能被您的服務器識別,您可以使用use Browsermob-proxyadd a custom header to your requests


所有這一切說,有一件事你必須意識到。儘管無法直接檢測Selenium,但您訪問的網站可能會收到一些間接線索。這些通常包括幾乎立即掃描太多請求 - 這可能是一個問題。確保你的Selenium像用戶一樣行事。


編輯2016/04:

Apparanetly它儘可能https://stackoverflow.com/a/33403473/2930045美國一家公司能做到這一點。我的猜測 - 這只不過是個猜測 - 是他們可以運行一些Selenium安裝到瀏覽器中運行的JS。

+1

THX你的答案是真的清楚看到這個計算器的問題。在將其標記爲接受之前,我會等待一段時間,也許還有其他一些意見。不要讓我錯,我喜歡你的答案,但也許有一些其他隱形的方法來識別硒,尤其是谷歌,因爲我可以想象它有興趣識別自動瀏覽器。多謝!! – zwieback86

+0

Hey Slanec,今天我試用了firefox的webdriver,並且我注意到右下角的「webdriver」文本,並且我還看到安裝了一個名爲「Firefox Webdriver 2.33.0」的插件。這讓我有點懷疑。你真的確定一個網頁無法看到我在Firefox中使用了什麼插件嗎?我沒有在狀態欄中看到這個「webdriver」標誌? – zwieback86

+0

@ zwieback86不,沒有人可以檢測到你的Firefox插件(除非你的插件使這個故意可能)。請參閱http://stackoverflow.com/questions/5067375/detecting-my-own-firefox-extension-from-a-webpage和/或http://webdevwonders.com/detecting-firefox-add-ons/。 –

1

跡象表明,是的,網站能夠正規化,你正在使用硒。
計數器示例:www.stubhub.com檢測並阻止使用Selenium啓動的瀏覽器實例,而手動完成「正常」瀏覽(不使用由Selenium Web驅動程序啓動的瀏覽器)可解決問題。

瞭解更多詳細信息 Can a website detect when you are using selenium with chromedriver?