Pythonを学習していて、Web APIとは何ができる機能か気になったことはありませんか。Web APIを使うと、プログラムを通してWeb上にあるアプリケーションやソフトウェアの情報を取得できるため、非常に便利な機能といえます。
Pythonが得意とする、Webサイトの情報を抽出する「スクレイピング」と似たような機能とされており、サービス開発やWebサイト管理を行う人に活用されています。
この記事では、Web APIのメリットや注意点、どのようなことができるかを具体的な例を挙げてご紹介します。
Web APIとはどのような機能なのか

APIは「A:アプリケーション、P:プログラミング、I:インターフェース」の略で、別のアプリケーションやソフトウェアの間を「プログラムで橋渡し(接続)する」という意味があります。
Web APIは、Web上に保管されたデータを他のアプリケーションやサービスと接続して、データ連携ができるよう仲介するインターフェースです。たとえば、クラウド上に保存している外部データを、社内のオンプレミス環境で利用しているシステム内に連携させたい場合などに使用されています。
Web APIには種類があり、無料で提供されているもの、機能制限のあるもの、個人でアクセスできないものなどなどさまざまです。ただし、Web APIによりデータを連携・取得できるのは、提供されている機能・公開範囲に限られます。
Web APIを使うメリット
Web APIを使うメリットは、手作業で情報収集やデータ移行を行わずに済むところです。たとえばECサイト運営をする場合、商品・顧客・売上状況といったさまざまなデータを販売管理システムに収集するケースがあります。
これらをすべて手作業で転記したり、データ別にCSV形式でダウンロードして移行したりするのは、非常に手間がかかるほかミスも起こりかねません。
このようなとき、ECサイトがWeb APIで情報を提供している場合、ECサイトで保有する大量のデータをスピーディかつ正確に取得することが可能です。公開されている情報を使えば、マーケティングにおけるデータ分析などにも役立つでしょう。
なお、Pythonはデータ分析を得意とするプログラミング言語です。Web APIの情報を分析するツールとしても活用できます。
Web APIの注意点
Web APIには、決まった規格がなく、情報提供元によって仕様が異なります。提供しているデータの種類やその範囲も異なるため、必要なデータをすべて取得できるわけでないことを念頭に置いておく必要があります。Web APIを利用する際に、利用申請になるケースもあります。
また、Web APIはすべてのWebサイトやアプリケーションで用意されているわけではありません。使用しているシステムやアプリケーションが対応していなければ、Web APIによるデータ連携ができないため注意が必要です。
Web APIを利用したい場合には、Webサイトやアプリケーションの仕様を確認し、取得できるデータの種類・範囲を事前に確認しておくことが重要です。未確認のまま大規模な仕組みを構築してしまうと、後で困ることにもなりかねません。目的次第では、データ分析などに用途を限定して使用することも検討しましょう。
Web APIを使うとなにができるのか

PythonでWeb APIを使うとどのようなことができるのでしょうか。
ここでご紹介するWeb APIはほんの一部です。ほかにもさまざまなWeb APIがあるため、自分や会社のニーズに合わせて活用しましょう。
郵便番号から住所を検索する
郵便番号から住所を検索するツールは、ECサイトなどでよくみられる機能です。
購入者が送り先の住所を入力する画面に、郵便番号を入れて「住所検索」のボタンを押します。すると、住所の欄に県名・市町村名が転記される仕組みを見たことがある人は多いでしょう。
この機能は、郵便番号と住所が紐づいた情報を利用しています。そのような郵便番号と住所の情報はWeb APIにもいくつか種類かあり、日本郵便が提供しているWeb APIが代表的です。なかには、郵便番号からではなく、県名などから住所の細かいデータを取得できるWeb APIもあります。用途にあわせて使いやすいAPIを選びましょう。
GoogleサーチコンソールのAPIを使ってサイト管理する
Webサイト運営をするなら、クリック率やCV率などの情報を分析したい時もあるでしょう。『Googleサーチコンソール』は、サイト分析が簡単にできるツールです。
普段はGoogleサーチコンソールを用いて直接Webサイトを分析すれば問題ありませんが、そのデータを用いて表・グラフを作成する場合には、Web APIが有効です。
Web APIを活用することにより、クリック数・インプレッション数・クリック率・平均の検索順位・検索クエリ・対象ページのURLなどのデータをダウンロードすることが可能です。社内資料の作成などにGoogleサーチコンソールのAPIを使えば、データ収集や分析がより効率的に行えるようになります。
Google Calendar APIから予定を取得する
Google Calendarを利用しているなら、PythonからWeb APIを利用して予定の取得・追加ができます。たとえば、イベント情報だけのカレンダーを作り、カレンダーに記載されたデータを用いてイベントリストを作成するといった利用方法ができます。
Pythonで定型文を予定に変換するプログラムを作っておけば、メールからカレンダーへと予定を追加するといった使い方も可能です。
NAVITIME API・駅すぱあとAPIから駅情報を取得する
『NAVITIME API』は、さまざまな移動手段を使った経路探索ができる地図情報APIサービスです。店舗検索ができるアプリケーションや、交通費精算のプログラムなどに利用できます。また、複数の目的地を指定し、最適な経路も探索できる運送会社での利用も挙げられます。
『駅すぱあとAPI』は、経路探索のほかに駅情報や駅付加情報なども用意されたAPIサービスです。駅名・駅コード・県名・駅などの情報をもとに経路検索や運賃計算ができる機能が備わっているため、複数店舗を持つ企業のWebサイトや、お客さま向けの店舗検索アプリケーションなどに活用できます。
Chatwork APIを使いこなす
『Chatwork API』は、チャットワークが保有するメッセージ送信・タスク追加といったさまざまな機能を外部のプログラムから使用できるようにするインターフェースです。
たとえば、毎日の集計作業などをPythonで行っていたとします。Chatwork APIを用いることで、Pythonの集計結果を自動でチャットワークのグループに送ることができるため、手間をかけずに情報共有ができます。
また、決まった日時に担当者にリマインドメッセージを送信したり、チャットワークで発生したタスクを社内の業務システムに伝達したりといった活用も可能です。そのほか、グループメンバーの情報やコンタクトメンバーの情報、コンタクト承認依頼の情報も、外部システムから取得できます。
LINE Messaging APIでBotを作る
『LINE Messaging API』を使うと、LINEのアカウントでBotを作成し、ユーザーへメッセージを送信できるようになります。作成したBotは友達登録ができ、トークに対してPythonのプログラムを使って返信させることが可能です。
LINE Messaging APIを使ってBotを運用し、ユーザーからの問合せ対応や来店予約などを行っている企業もあります。また、Q&AをLINEに入力したキーワードで設定し、アンサー候補を返信するような仕組みを作ることもできます。
Web APIは初心者には難しい
Web APIを使いこなすには、HTTP通信の知識や、受け取ったデータの知識が必要です。また、個々のWeb APIでは仕様が違うため、Web APIをうまく活用できるスキルも求められます。
Web APIには決まった規格がないため、サービスによってさまざまな使い方が存在します。初心者には少し難しい仕様もあるため、お目当てのWeb APIがあるなら上級者の活用方法を参考にしてみることをおすすめします。
Web API用のPythonライブラリを使用する

Web APIを直接利用することが難しいなら、ライブラリを探しましょう。ライブラリは、必要な機能を使いやすくカスタマイズしたPythonのパッケージです。Pythonにはたくさんのライブラリが存在し、プログラミングを手助けしてくれます。
Pythonの基本的な知識があれば十分に活用できるため、ぜひ活用してみてください。また、Pythonのパッケージを利用すれば、Web APIの難しい設定を理解しなくても、ライブラリを呼び出せば使うことができます。ただし、使いやすい反面、情報や機能が制限される場合もあるため事前に確認しておきましょう。
ここからは、Web APIを利用するPythonのライブラリを2つご紹介します。
wikipedia-api
『wikipedia-api』は、ウィキペディアの情報やURLを取得し使用するライブラリです。wikipedia-apiで検索キーワードを指定するだけで、Pythonでウィキペディアの記事内容を取得できるようになります。ウィキペディアのWeb APIを使用するよりも、簡単に情報を収集することが可能です。
Tweepy
『Tweepy』はTwitter APIのライブラリです。Twitter APIを直接使うよりも簡単に、ツイッターの情報を収集できます。
商品名やサービス名でキーワードを設定すれば、どのようなツイートがされているかを確認でき、自動でフォロー・いいねをすることもできます。商品名でヒットしたツイートに、自動でフォローやいいねをするといった利用方法もあります。
また、ツイートに反応するだけではなく、自動で決まった時間にツイートしたり、特定のツイートに自動で返信したりすることも可能です。Tweepyを使えば、ツイッターを使ってさまざまなマーケティング活動を実施できるようになります。
スクレイピングとWeb APIの違い

Pythonには、スクレイピングというWeb APIと似たような情報収集機能があります。スクレイピングは、HTMLデータを取得し、そこから必要なデータを抽出する機能です。それぞれのステップにあわせて「requests」や「Beautiful Soup」などのライブラリを使います。
Web APIと異なるのは、スクレイピングはWeb上の情報を許可なく収集・分析できるという点です。情報収集が許可されているかという点について、Web APIとスクレイピングの違いを解説します。
Web APIはサービス提供側が情報を公開している
Web APIは、Webサイトやアプリケーションを運営しているサービス提供側が情報を公開しています。サイト運営者にとって、公開している情報を利用されても問題ありません。情報を取得するための利用申請など条件を満たせば、安心して利用できます。ただし、「同じWeb APIに頻繁にアクセスする」といった行為は禁止されていることもあるため注意が必要です。
スクレイピングは許可を取っていない
スクレイピングは、WebサイトのHTMLデータを取得し、取得したHTMLデータのタグなどを利用して、必要な内容だけを選んでデータ化する手法です。HTMLデータは、Web上に公開されているサイトであればほとんど取得できるため、情報元の許可なくデータ収集ができるという特徴があります。
ただし、許可なくデータ収集ができるからといって、何をしてもよいというわけではありません。スクレイピングを行う際は、対象のサイトがデータ収集や他サイトへの転用を許可しているか確認しておくことが重要です。
会員制のサイトなどは、利用規約でスクレイピングを禁止している場合があるほか、著作権のあるデータの取り扱いにも注意が必要です。スクレイピングによって問題が発生した場合は、自分の責任となるため、慎重に活用しなければなりません。
情報をWeb APIで取得してみよう
Web APIは情報収集・分析に使える便利なツールです。しかし、仕様やデータの取得範囲はサービスによって異なるほか、Web APIに対応していないアプリケーションやソフトウェアも存在します。
Web APIを活用するスキルや知識に自信がない方は、Pythonのライブラリを活用するのがおすすめです。Pythonは、初心者でも学びやすいプログラミング言語です。ご紹介した機能以外にも、豊富ライブラリなどがあるほか、スクレイピングという機能も備わっているため、データ収集をより手軽に実行できます。PythonやWeb APIの活用で、データ活用の可能性を広げてみましょう。