G検定

ウェブからデータを収集する手法を俯瞰(その1)

ウェブ上でデータを収集する方法は大きく分けて2つあります。

  1. サービスやアプリ、自社ウェブサイトからのデータ収集:SDKやAPIを使用
  2. 一般的なウェブサイトからのデータ収集:クローリングとスクレイピングを使用

今回は①について詳しく解説していきます。

SDKとは

SDK (Software Development Kit)は日本語では「ソフトウェア開発キット」と訳されます。名前の通り、「ソフトウェアを開発する際に必要な機能やツールが含まれるツールキット」のようなものです。パッケージには、実行プログラム、API、サンプルコード、さらに説明書も含まれます。

SDK活用すると、最低限の労力で、しかも開発担当者が実装する技術について高度な技術や知識を持たなくても開発を行うことができます。

ソフトウェアベンダーの会社ごとに独自のSDKを提供しており、キットに含まれるものはベンダーによって異なります。自社製品と、他社のアプリケーションを簡単に連携できるように設計しています。SDKには有償のものと無償のものがあり、大抵はインターネットからダウンロードできます。

SDKはソフトウェア、アプリケーション、プラットフォーム、システムの開発に使われる以外に、本記事の本題であるデータ収集にも使われます。SDKを自社のサービスやアプリ、ウェブサイトなどに組み込むことで、情報・データを取得しやすくします

下図には、SDKを利用したデータ取得までの流れが示されています。

ちなみに、人気なプログラミング言語Javaを使用して開発する場合は、代表的なSDKであるJavaJDK (Java Development Kit)がよく使われます。

API とは

API(Application Programming Interface)とは、名前の通り、アプリケーションをプログラミングするためのインタフェースです。APIを提供するプラットフォームが持つ機能を、別のプログラムから呼び出して利用するために使われます

例えば、C言語の関数、Javaのclass、REST API は全てAPIの一種です。多くはライブラリという形で提供されます。また、ウェブAPIを活用することで、ウエブ上の様々な機能を手元のプログラムやウェブサイトで簡単に利用できるようになります。その1つはウェブからデータを収集することです。

APIを活用することで、データ収集が容易にできる場合があります。データ収集の観点からいうと、APIはウェブやアプリのデータを、プログラミング言語を用いて呼び出す窓口となっています。

下図には、APIを利用したデータ取得までの流れが示されています。

有名なアプリの多くからもAPIが提供されています。以下が代表的なAPI活用可能なウェブサイトです。

  • Twitter
  • Slack
  • YouTube
  • ぐるなび
  • Google Search Console
  • LINE
  • 郵便番号検索

HTTP(Hyper Text Transfer Protocol)通信経由でウェブAPIにリクエストを送る際には、Pythonのrequestsモジュールを利用します。

Windowsのアプリ開発では、Win32API/Win64APIを使用すると、Windowsが持つ各種機能が使えるようになります。

SDKとAPIの違いは?

上記の説明を読むと、SDKとAPIは共通点が多く、どうやって使い分けるのだろうと思っている方がいるのでしょう。SDKとAPIの共通点、開発者がゼロからプログラミングをすることなく開発や機能の呼び出しができることです。一方で、SDKとAPIは役割が異なると考えられます。

まず、APIはSDKに含まれています。SDKのうち、APIはアプリケーションの機能を呼び出すためのインターフェイスの役割を果たしています。この機能をプログラムの中で使用するためには他に様々な工程が必要です。SDKは、プログラミングを用いてAPIを簡単に使えるようにするために、APIやライブラリの機能やサンプルプログラムなどのツールをパッケージ化したものです。

yan
データ分析官・データサイエンス講座の講師