-2

Web上での単語の分布(基本的には単語の出現)を計算するスクリプトを書いています

私がやっていることは、検索エンジンのランダムなページを生成し、リンクを抽出し、それらのサイトから単語を計算することです。

私はグーグルを使用していましたが、CAPTCHAが私のリクエストをブロックしました。現在、ビングを使用しています。すべてが正常に機能しますが、奇妙な問題があります。

ある時点で、100〜300ページのようにスキャンした後、私のプログラムは何もしないことを完全にブロックします

ps xをチェックすると、何かをダウンロードしようとしているユーティリティw3mのプロセスがありますが、それはアイドリングのようなものです

プロセスを強制終了すると、スクリプトは問題なく実行され続け、何も起こらなかったようになります...

どうなり得るか?私が書いたいくつかのエラーコードは、あまりにも多くのリクエストをブロックしていますか?

私は非常に不法な解決策を考えていました

基本的に、5秒以上アイドリングしている場合はプロセスを強制終了できますが、どう思いますか。また、これをどのように行うことができますか?その時点でプログラム全体がブロックされるのではないかと心配しているので、実行中のプロセスをチェックし、ブロックされた場合はw3mプロセスを強制終了する外部スクリプトが必要です。

どうもありがとうございました。本当に感謝

4

2 に答える 2

1

一部のページがなくなったか、リモートサーバーが応答せず、タイムアウトを超えるのを待ってw3mがハングしたようです。ちなみに、これw3mをスクリプトで使用するのはかなり珍しいことです。通常curl、またはwgetその目的で使用されます。

たとえば、このような問題を回避するオプションwgetがあります。--timeout=

高速グーグルの後、のタイムアウトについて何も役に立ちませんでしたw3m。あなたが私より少し幸運になることを願っています。

于 2012-08-08T13:35:56.613 に答える
0

100〜300ページのようにスキャンした後

繰り返しのスクレイピングを防ぐために、検索プロバイダーによって設定された特定のしきい値を超えている可能性があります。検索プロバイダーがあなたがルーズボットであると推測した場合、検索プロバイダーはしばらくの間結果を制限する可能性があります。

于 2012-08-08T16:41:42.027 に答える