June 2025
Intermediate to advanced
356 pages
5h 13m
Japanese
Webクローリングは非常に高速です。少なくとも、十数人のインターンを雇ってインターネット上のデータを手作業でコピーするより圧倒的に早いでしょう。とはいえ、技術が進歩して要求も高まるにつれ、ある段階で「これでも遅い」という不満が出てきます。その段階になると、人々は分散コンピューティングを検討し始めます。
他の技術分野と違い、Webクローリングは単に「リソースを増やす」だけでは性能が向上しません。1つのプロセスなら十分に高速でも、2つに増やして処理が2倍速くなるとは限りませんし、3つ以上にすると、大量のリクエストが原因でサーバーからアクセスを遮断される可能性すらあります。
ただし、以下のような状況においては、並列Webクローリング(複数のスレッドやプロセスを同時に走らせること)によって恩恵を得られる場合があります。
スレッドとプロセスは、Pythonだけの概念ではありません。OSによって実装の詳細は異なりますが、一般的なコンピューターサイエンスの見解として、プロセスはより大きな単位で独立したメモリ空間を持ち、スレッドはより軽量で所属しているプロセスのメモリを共有します。
通常、シンプルなPythonプログラムを実行するとき、そのプログラムは単一スレッドを含む独立したプロセスとして動作します。しかしPythonは、マルチプロセスとマルチスレッドの両方をサポートしており、いずれも「従来のように関数を順番に実行するのではなく、複数のタスクを並列に実行する」という同じ目的を達成できます。 ...
Read now
Unlock full access