5

Selenium/webdriver を使用してブラウザーをシミュレートし、それを使用して Web サイトのコンテンツをスクレイピングしたいと考えています。最速の方法ではありませんが、スクリプトの実行など、私にとっては多くの利点があります。

多くの Web サイトでは、Google や bing などの検索エンジンなど、自動化された方法でアクセスすることは禁止されています。

1 つのツールでは、いくつかのキーワードについて Google から推定結果統計を取得する必要があります。これは次のようになります: google.com にアクセスしてキーワードを入力し、結果をスクレイピングするブラウザをシミュレートし、少し間を置いてから次のキーワードを入力し、結果をスクレイピングします...

私の質問は、ブラウザーを手動で使用する代わりに、ブラウザーをシミュレートするためにセレンを使用していることを Web サイトが認識することは可能ですか? 特にGoogleのケースは、私にいくつかの疑問を投げかけます。私は、セレンが部分的にグーグルによって、または少なくともグーグルで働いている何人かによって開発されていることを知っています。それで、セレンにいくつかの指紋が残りますか、それとも私がブラウザを自分で使用しているか、セレンによってシミュレートされているかを判断することはできませんか?

4

2 に答える 2

3

いいえ、あなたが Selenium を使用していて、WebDriver を使ってブラウザを手動で操作していないことを実際に見ることはできません。古い Selenium RC についてはわかりませんが、同じ方法である必要があります。仕組みは次のとおりです。

  1. Selenium は、クリーンなプロファイル (または選択したプロファイル) でブラウザを開きます
  2. Selenium はブラウザに接続されているため、ブラウザを操作して制御できます。しかし、ブラウザは依然としてほとんどの作業を行っています。基本的に、Selenium はブラウザーへのユーザー入力を置き換えますが、それ以上ではありません。

これは、ブラウザから送信された HTTP ヘッダーの内容を読み取ることで簡単に確認できます。

サーバーが Selenium を認識する必要が実際にあった場合は、Browsermob-proxy を使用て、リクエストにカスタム ヘッダーを追加できます


とはいえ、1 つだけ知っておかなければならないことがあります。Selenium を直接検出する方法はありませんが、アクセスしている Web サイトによっていくつかの間接的な手がかりが得られる可能性があります。これらには通常、事実上すぐに行われた多すぎるリクエストのスキャンが含まれます - これはあなたにとって問題になるかもしれません. Selenium がユーザーのように動作していることを確認してください。


編集 2016/04:

https://stackoverflow.com/a/33403473/2930045は、会社がそれを行うことができると述べているため、明らかに可能です私の推測では、推測にすぎませんが、Selenium がブラウザーにインストールして操作する JS を実行できるということです。

于 2013-07-15T12:26:25.353 に答える