見出し画像

非同期処理対応のスクレイピング用サイトの開発

前回開発したスクレイピング用サイトは、同期処理でスクレイピングを行っていて、非同期処理を行うことができませんでした。

同期処理では、情報量の多いWebサイトから情報をスクレイピングすることができません。
そのため、今回は非同期処理が可能なスクレイピング用サイトを開発しました。

基本的な機能としては、同期処理が可能なスクレイピングサイトと同様です。

今回は非同期処理と同期処理の違いについて少しだけ触れて、全コードとサイトURLを公開します。

非同期処理と同期処理について

非同期処理とは

非同期処理は、1つの処理を実行している最中にも、他の処理を実行できる実行方式です。非同期処理を使うことで、ユーザーがアプリやサイトの処理待ちを気にする必要がなくなり、ユーザビリティが高まります。

非同期処理を実装することで、複数の処理を別々に実行することができるようになるため、実行速度が向上します。
また、ユーザーのWaiting時間が減少するため、ユーザビリティが高くなります。

Webサイトにおいて、ユーザーのWaiting時間は重要な指標になりますので、処理時間が短いに越したことはありません。

一方で、コーディングを工夫しなければ、現在どういった処理を行っているのかが不明瞭になってしまい、プログラムの全体像がわかりにくくなりというデメリットもあります。

同期処理とは

文字通り、処理を行う際に、1つずつ順番に実行される方式です。同期処理では、コーディングされた順番で処理が実行されるため、処理全体を把握しやすく、プログラム全体が明瞭です。

一方で、複数の処理を実行する必要がある場合、1つの処理が終わるまで次の処理を行うことができないので、待ち時間が増加してしまい、ユーザビリティの低下につながる可能性があります。

Webサイトの実装

同期処理のWebサイトはFlaskを使って、非同期処理のWebサイトはFastAPIを使って実装しています。

下調べが足りなくて、Flaskでは非同期処理できないと思っていたのですが、Flask 2.x.xになってからは非同期処理も実装できるようになっていました。

(でもまぁ、FastAPIの勉強になったし、ネットの情報も多いから…)

FlaskとFastAPIの違いについては、以下のサイトが非常によくまとまっていると思いますので、ぜひ参考にして下さい。

非同期処理対応のWebサイトとコード

非同期処理対応のWebサイト

サービス名を考えていなかったので、非同期処理対応のWebサイトと言いますが、URLは以下になります。

同期処理のWebサイトと同様に、Renderを使っているため、最初のアクセス時が時間かかると思いますが、2-3分待てばアクセスできるようになります。

現状最安値ですが、10部ごとに値上げします。こちらのコードを応用すれば平均単価4万程度のスクレイピング案件に活用することができ、すぐにもとを取ることができます。

興味がある方はお早めにご活用ください!

ここから先は

5,024字
この記事のみ ¥ 1,280

この記事が気に入ったらサポートをしてみませんか?