3

Ruby に Mechanize gem を使い始めましたが、Web サーバーが Mechanize エージェントからのアクティビティを検出してブロックできる方法はあるのでしょうか?

はいの場合、Mechanize がサイトを破棄または訪問するのをブロックするコードまたは手順は何ですか?

4

2 に答える 2

2

自動化されたプロセスがサイトにアクセスしていることを検出する方法はいくつかあります。

  • ユーザーエージェント文字列を確認できます。
  • 彼らはあなたが要求しているものを見ることができます。ブラウザーは、HTML ページ内のすべての画像と CSS を要求します。機械化はデフォルトでは行われません。
  • 人間は、ページを読んで内容を理解するために立ち止まります。一時停止するようにプログラムされていない限り、コードはフルスピードで実行されるため、リクエストは次々とすばやく実行されます。

これらは必ずしも Mechanize が実行されていることを示しているわけではありませんが、サイトをスクレイピングしているコードのフィンガープリントです。

彼らはそれについて何ができますか?

  • そのユーザー エージェントを禁止します。
  • IP 番号、ドメイン、またはサブネットからの要求を禁止します。
  • IP 番号、ドメイン、またはサブネットからの要求が速すぎる場合は禁止します。

サーバーとネットワークハードウェアに応じて、これらのことを行うにはさまざまな方法があります。

この質問は、StackOverflow のトピックとはかなり無関係であり、おそらくhttps://serverfault.com/またはhttps://webmasters.stackexchange.com/で質問する必要があります。

于 2012-07-25T09:09:55.303 に答える
0

robots.txt ファイルを作成して、人々がそれを尊重してくれることを期待できます。

User-Agent 文字列でブロックを開始すると、IE のふりをすることができます。

于 2012-07-25T05:49:34.507 に答える