4

スクレイパーウィキはスケジュールされた実行を停止することをどのように決定しますか? 実際の実行時間またはCPU時間に基づいていますか? または多分何か他のもの。

Mechanize がすべてのページをロードするのに 30 秒を必要とするサイトをスクレイピングしますが、ページを処理するために使用する CPU はほとんどないため、サーバーの遅さが大きな問題ではないかと思います。

4

1 に答える 1

2

ウォールクロック時間ではなく、CPU 時間。これは、Linux 関数 setrlimit に基づいています。

各スクレーパーの実行には、約 80 秒の処理時間の制限があります。その後、Python と Ruby では「ScraperWiki の CPU 時間が超過しました」という例外が発生します。PHPでは「SIGXCPUによる終了」で終了します。

多くの場合、これは最初にサイトをスクレイピングし、既存のデータのバックログに追いつくときに発生します。これを処理する最善の方法は、save_var および get_var 関数 ( http://scraperwiki.com/docs/python/python_help_documentation/を参照) を使用してスクレイパーに一度にチャンクを実行させ、場所を記憶させることです。

これにより、他の解析エラーからより簡単に回復することもできます。

于 2011-05-25T14:44:08.133 に答える