0

ヒープjavascriptで生成されたWebページでスクレイピングジョブを行うには、セレンを使用する必要があります。 Webdriverの複数のインスタンスを一度に開くことができ、キューを使用してインスタンスにWebサイトを渡すことができます。セレンでウェブスクラップするためのスレッディングまたはマルチプロセッシング

これは複数の方法で行うことができます。私は、マルチスレッドモジュールからのスレッドとモジュールの両方を試しました。

すべての仕事は非常に速く仕事をします。

これは私には不思議な思いを抱きます:このような状況ではどのモジュールが優先されますか?

+0

スレッドを調整して、メモリを少なくしてから処理する方が簡単です。しかし、それはあなた次第です。好みの方法はありません。 – freakish

答えて

1

スレッドのプロセス間の選択のためのCPythonの主な要因は、ワークロードのタイプに基づいています。

多くのアプリケーション時間がデータの入出力を待つのに費やされるI/Oバウンド型のワークロードがある場合は、スレッドを使用することをお勧めします。

アプリケーションがCPUを使用して時間を費やしている場合は、プロセスが最適なツールです。

これは、CPython(最も一般的に使用されるインタープリタ)では、一度に1つのスレッドしかCPUコアを使用できないためです。この制限に関する詳細については、Global Interpreter Lock(GIL)を読んでください。

通常は見過ごされているプロセスを使用すると、別の利点があります。プロセスによって、より高度な分離が可能になります。これは、ハングまたはクラッシュする可能性のある不安定なコード(あなたのケースでは、スクレイピングロジックかもしれない)を別のプロセスにカプセル化することで、サービスが異常を検出してリカバリ(プロセスを終了して再開)できることを意味します。

関連する問題