Webスクレイピングについて

最近、Webスクレイピングをする案件の依頼がありました。その中で、Webスクレイピングに触れて色々と学習ができたので、備忘録としてまとめておきたいと思います。

まず、スクレイピング自体は何度か経験がありました。実際にスクレイピングを使う場面は結構あり、企業が分析したい場合などによく使用される傾向があります。

スクレイピングをする方法は数々あります。有名なものとしては、Pythonでおこなう方法です。私もこの方法は活用しました。しかし、今回スプレッドシートに書き出すという処理も組み込みたかったため、pythonの採用は見送りました。

なぜ見送ったのかというと、スプレッドシートを呼び出すAPIを呼び出す回数が決まっているからです。何度もAPIを呼び出すと、回数の制限がこえて処理ができなくなったしまいます。

こうした事情があったので、今回はPythonを断念しました。では代わりに何を使ったのかというところですよね。私は、スプレッドシートとの相性が抜群のGASを採用しました。

GASは、Googleが提供しているスクリプト言語で、スプレッドシートと紐づいて仕様ができます。また、気軽にスプレッドシートを扱えるので、非常に相性が良いです。

他にも、JavaScriptとほぼ一緒の文法なので、凄く入りやすい言語です。Google系のサービスをメインで利用している人であれば、是非利用してもらいたい言語になっています。

私はGasを採用しましたが、いくつか課題がありました。その中の一番大きな課題が実行時間問題です。Gasには、最大実行時間というのが決まっております。それは6分間となっており、それ以上の時間スクリプトが起動していると強制終了してしまうのです。

私はこの問題を避けるためにも、トリガー処理を仕込みました。トリガー処理はGasから設定ができるほか、手動での設定も可能です。しかも、5分おきに実行するというのも可能なので、今回の作業との相性がいいなと思い実践しました。

今回、10000を超えるURLから取得するという依頼内容だったので、取得にはかなりの時間がかかります。しかも、何回もアクセスをするので、スリープで時間を置くなどの対策も必須です。

あくまでも手動でデータを取得しているよというのをコンピュータ側に認識させなければならないため、少なくとも2秒の間を置くようにしました。

そんなこんなでスクレイピングが出来ましたが、正直スキルが身についたので良かったなと思います。今後も、継続して受けていきたいです。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA