「API」とは、「Application Programming Interface」の頭文字ですが、システムの入り口と理解したらいいと思います。
異なるシステムのデータを取得するときは苦労しますが、api関数を提供してくれたら、かなり作業は捗ります。
api関数を提供しているwebサービスは年々増えている印象ですが、気になるapi関数を提供しているwebサービスがあれば、一度スクレイピングに挑戦してください。
目次
apiは何故必要か?
少し遠回りの説明になるかもしれませんが、apiが必要な理由を解説します。
apiはプログラマに便利
接続が簡単だったら非プログラマーでも利用は可能だと思いますが、基本的にapiはプログラマ向けのインターフェイスです。
プログラマが巨大なサイトのデータを自由に操りたいことはありますが、その際はapi関数で接続するのが一般的です。
データを重要視するプログラマにとっては、便利なインターフェイスです。
apiに接続するときはapi関数を使う
apiに接続するときは、api関数を使います。api関数はwebサービス側が提供してくれますが、さほど難しくない印象です。
webサービスによっては表で整理してくれているので、初めて接続する人でも何とかなるかもしれません。
ただapi関数を使うときはユーザー登録が必要です。
api関数で接続しスクレイピングする流れ
これからはapi関数で接続し、スクレイピングする流れを解説します。
まずはapi関数で接続
まずはapi関数でapiに接続しなければいけません。api関数で接続したらデータの並べ替えなどがしやすくなるので、かなり効率的にデータが収集できます。
例えば本年度だけのデータがほしい場合は、パラメーターで本年度を指定します。
webサービスによってapi関数の文法は異なるので、不明点がある場合はマニュアルを熟読してください。
マニュアルを読んでも解らない場合は精通している人に聞くか、webサービス側に問い合わせしましょう。ただwebサービスによっては資料だけ提供してサポートしていないことがあるので、その際は経験者に聞くしかありません。
目的のデータを出力した後にスクレイピング
目的のデータを出力した後にスクレイピングを実行しますが、webサービスによっては一筋縄ではいかないかもしれません。
ソースをJSONで書いているかもしれないし、暗号化しているかもしれません。または負荷を避けるために、スクレイピングを禁止しているかもしれません。
極端なことを書きましたが、スクレイピングしても上手くいかないときは、まずはソース画面を確かめてください。
ソース画面を確かめてスムーズにいくと思ったのにいかない場合は、webサービス側がスクレイピング対策をしている可能性があります。
スポンサーリンク
api接続でスクレイピングするポイント
これからはapi接続後に、スクレイピングするポイントを解説します。
既存のスクレイピングツールを使った方が便利
api接続後は既存のスクレイピングツールで、スクレイピングした方が無難です。その理由は効率性です。
自分が構築したスクレイピングツールでスクレイピングすることも可能だと思いますが、イチイチ対象のURLを書き換えるのは面倒なものです。
その点、既存のスクレイピングツールはURLの変更が簡単なので、大幅な時短が期待できます。
長時間のスクレイピングは控える
長時間のスクレイピングは控えた方が無難です。言うまでもなくスクレイピングが長時間続けば、対象のサイトに負荷がかかります。
api接続しているのは自分一人ではないので、その人達のことも考えましょう。
長時間のスクレイピングを控えるポイントですが、ズバリ目的別にスクレイピングすることです。月日のデータがほしいのであれば、まずはapi接続後に月日のデータを出力させます。その後はスクレイピングするだけです。
また対象のタグは可能な限り一つに絞った方がいいです。複数のタグを指定すれば、スクレイピングの時間が長くなる可能性があります。
CSVファイルを提供している場合はスクレイピングしない
実際に見たことはないですが、出力後のデータをCSVファイルに格納しているwebサービスはあるかもしれません。
そのようなwebサービスを見つけた場合はスクレイピングせず、CSVファイルをダウンロードしましょう。
ダウンロードした後は、Excelに転記するのが良いと思います。
Excelに転記する理由は再利用がしやすいこともありますが、余計なデータを削除しやすいこともあります。
CSVファイルの状態でも余計なデータを削除するのは可能だと思いますが、Excelに転記した方が視覚化できるので、間違いは少ないと思います。
apiに接続してからスクレイピングする意義
これからはapiに接続してから、スクレイピングする意義を解説します。
データが整理しやすい
何と言っても必要なデータが整理しやすいことです。メガサイトのすべての情報は必要ないけど、一部の情報は必要・・・
そのような人はapiに接続してから、スクレイピングする方が絶対にいいでしょう。取得したデータを自分のサイトに掲載できるのであれば掲載してもいいですが、規約で禁止されている場合は、自サイトの掲載は控えましょう。
自サイトの掲載を禁止しているwebサービスでも、個人使用は認めていることが多いです。
Excelに転記して分析に活用する・・・これは個人的な使用の範疇に入ると思いますが、整理されたデータをピボットテーブルで分析をしたら、何が重大な発見があるかもしれませんよ。
貴重なデータに触れることができる可能性がある
api接続したら、貴重なデータに触れることができるかもしれません。api接続したら自由にクエリしやすいので、思わぬデータに遭遇するかもしれません。
そのようなデータをビジネスで活用できるのであれば活用してもいいし、ビジネスでは活かせないデータは話のネタにしてもいいでしょう。
スポンサーリンク
api関数を提供していないwebサービスは専門のスクレイピングサービス
api関数を提供していないwebサービスをスクレイピングする場合、当たり障りのないデータしか取得できないかもしれません。
apiに接続できないので、データを自由に収集できないからです。
このようなケースの場合は、専門のスクレイピングサービスに依頼した方がいいかもしれません。
専門のスクレイピングサービスは技術力が高く、apiに接続しなくても重要なデータを取得してくれる可能性があるからです。
またデータ分析に長けているので、データをビジネスで活用する人は助かると思います。
一般技術者のスクレイピング関連の技術力は上がってきましたが、専門のスクレイピングサービスと比べたらまだまだです。
もし必要であれば、是非とも専門のスクレイピングサービスを利用してほしいです。人を一人雇うよりも安いです。
まとめ
api関数とスクレイピングをテーマにしましたが、apiに接続したらスクレイピングしやすくなるのは確かです。
api関数については、各webサービスが公開しているので参考にしてください。私もときどき使っていますが、さほど難しくはないですよ。
今後のメガサイトはapi経由でしかスクレイピングできなくなる可能性があるので、api関数に慣れることは意味のあることです。
コメントを残す