PythonでWeb APIを利用し、データを収集する方法【おすすめのAPIも紹介します】
先に結論から。Youtubeのチャンネル登録をして、この動画を見ればPythonで自動化できることが分かりやすく解説しているので、これを見れば一発です。
Youtubeでチャンネル登録して動画を見てみる※追記 2019年6月7日
これ以外にもプログラミングの解説動画があるので、ぜひ以下のリンクからチャンネル登録して、ほかの動画も見てみてください!
Pythonでは、Web APIを利用すると、データの自動収集ができるようになります。しかし、Web APIと言われてもよくわからないですよね。今回は、
- PythonでAPIを利用する方法を知りたい。どうやったら呼び出すことができるの?
- Pythonで使えるAPIってどんなものがあるの?
- PythonのAPIを使えるようになるためには、どうすればよいの?
という疑問に答えられるよう、PythonでWeb APIを利用する方法について詳しくまとめていきたいと思います。
目次 (PRも含まれます)
Web APIとは
Web APIとは、簡単に言うと、外部サービスの情報窓口です。
- Twitterから自分のツイートをダウンロードしたい!
- Instagramから、有名人の画像を一括ダウンロードしたい!
という場合に、Webブラウザ経由ではなく、HTTPという通信経由で、ツイッター内のデータにアクセスすることができます。
ちなみに、厳密にいうとWebブラウザを経由しているときは、HTTPという通信でデータを取得していますが、ブラウザなしでHTTPの通信をPython上で行うことで利用することができるのです。
Web APIが使えると、何が嬉しいの?
Web APIが使えると、何が嬉しいのかを簡単にまとめます。
- 自作のサービス上で、外部アプリケーションのデータを利用した、混ぜ合わせたアプリ(マッシュアップアプリ)を作れる
- 普通にブラウザでデータを収集すると、手動で「次へ」ボタンをクリックして全記事を確認しなければならないが、APIを利用すると、一瞬で可能
- Pythonで自動化プログラムを組めば、データの自動収集をブラウザではなくプログラムから実行できるので、ブラウザ操作しなくても放置するだけでデータの取得が可能
1に関しては、身近な例でいうと質問箱アプリです。例えば、
といったアプリは、TwitterにAPI連携しているからこそ、ツイッター上で自動投稿ができるわけですね。ほかにも、ツイッターの分析ツールである
等のアプリケーションは、Twitter上のデータを自動取得するために、APIを利用しています。
Web APIを提供しているサービス
Web APIを提供していて、有名なサービスは以下の通りです。
- Twitter REST API
- Instagram Graph API
- Google Search Console API
- Slack APIs
- Chatwork API
- LINE Messaging API
- 【機械学習API】Google Cloud Vision API
- 【機械学習API】Microsoft Cognitive Face API
Twitter REST API
ツイッターが出しているAPIです。このAPIを使うと、こんなことができます。
- 【データの収集】他人のツイートを自動でダウンロード
- 【データの収集】検索キーワードをツイートした人のリストをCSVにエクスポート
- あるキーワードについてつぶやいたツイートを自動でいいね、またはフォローする
ツイッターのAPIを利用してできることについては、こちらの記事をぜひ読んでみてください。
≫関連記事 Python Twitter APIを初心者向けに徹底解説してみた – フォロワー取得からハッシュタグ検索まで-
Instagram Graph API
インスタグラムも同じようにAPIを提供しています。しかし、無料で提供されいているものは個人のデータを取得することは可能ですが、他人のデータを取得することはできません。ですので、もし他人のアカウントのデータを取得したい場合は、法人用の申請を出す必要があります。
Google Search Console API
ブロガーや、SEO担当者だと使う可能性が高いのが、Googleの検索キーワードツールGoogle Search ConsoleのAPIです。自身のGoogle Search Consoleと紐づけたメディアの、こんなデータを取得できます。
- 狙っているキーワードでの検索数
- 狙っているキーワードの検索順位
- 狙っているキーワードのクリック数
などが取得できます。(ちなみにこのデータをGoogle SpreadsheetにAPI連携して毎日自動取得とかできるので、超絶便利です!)
Slack API
チャットツールである、SlackにもAPIがあります。できることとしては
- TwitterのAPIと組み合わせて、あるキーワードがツイートされたときに、Slack上で通知(社名での評判の可視化等)
- 毎日取得したいニュース記事を、Slack上で自動通知
などができます。Web APIを通して、プログラムから情報を送信(POST)し、Slack側で投稿みたいなこともできるので、実はAPIはデータの取得だけできるのではなく、APIを通して、アプリを外部から操作することができるわけです。
Chatwork API
ChatworkもAPIを持っています。が、基本的にはSlackでやっていることはだいたいできるようです。
LINE Messaging API
こちらは、LINEにメッセージを送るBotを作れるAPIです。過去に僕はLINEに画像を送ると、自動でその画像を文字起こししてくれるアプリを作ったことがありますが、これもLINE Messaging APIを利用して作成しております。
Google Cloud Vision API
こちらは、機械学習のAPIです。画像を送ると、その画像が何なのかを特定して文字列で返してくれるAPIになります。こちらも、LINEに画像を送ると、自動でその画像を文字起こししてくれるアプリで利用しました。
≫【関連】 【AIプログラミング】LINEに画像を送ったら自動で文字起こししてくれる機械学習アプリを作ろう
Microsoft Cognitive Face API
こちらは、顔認識の機械学習APIです。このAPIに顔の画像を送ると、だれだかを学習してくれます。以前、女性の画像を送ると似ているAV女優を教えてくれるAI LINE Botを作りましたが、こちらもMicrosoft Cognitive Face APIを利用しています。
≫【関連】スケベAI「スケベ博士」をPythonとGoogle Apps Scriptで作るスケベ・チュートリアルを公開します
PythonでWeb APIを取り扱う方法
PythonでWeb APIを取り扱う方法ですが、以下2点です。
- Web APIの仕様書(APIリファレンス)を読んで実装する
- Web APIのラッパーライブラリを利用して利用する方法
Web APIの仕様書(APIリファレンス)を読んで実装する
基本的にエンジニアは、Web APIを利用する場合Web APIの仕様書を見て実装することが多いかと思います。
APIリファレンスは、初心者が読むとすこし難しいです。それは、
- 基本的なHTTPにおける通信の理解
- GET/POST/PUT/DELETEというアクションの理解
- URLパラメーターの理解
- インターネットの認証の仕組み(Basic認証, OAuth認証)の理解
- JSON, XML等のデータの理解
が必要になってきます。ですので、これらの理解をした人ではないとちょっと難しい反面、後述するAPIラッパーライブラリを利用するよりも自由度の高い実装が可能です(ラッパーライブラリでは対応しきれていない操作などが可能です)
この場合は、PythonのHTTP通信のモジュールである、requestsというライブラリを利用して、基本的にはHTTPの通信を制御します。詳しくは、下記記事のPythonチュートリアルを読んでみてください。
Web APIのラッパーライブラリを利用して利用する方法
もう一つが、Web APIのラッパーライブラリを利用する方法です。ラッパーとは、あるAPIでよく行う操作をまとめたライブラリのことで、これを使うとAPIのリクエストがAPIリファレンスを読むことなく、直観的にデータを操作することができます。
例えば、TwitterのPython用APIラッパーに、Tweepy
があります。Tweepyを利用すると、非常に簡単にツイッターのAPIをPython上で操作することができます。
Tweepyの利用方法については下記記事を参照してください。
≫ 関連 Python Twitter APIを初心者向けに徹底解説してみた – フォロワー取得からハッシュタグ検索まで-
Web APIの学習方法
Pythonを利用した、Web APIの学習方法については、こちらのチュートリアルをご覧ください!
PythonでWeb APIを学びたい人におすすめのサービス
Web APIのことは分かったけど、実際どう使えばいいのかわからないという方にはキカガクがぴったりです。
キカガクは、プログラミングの基礎から応用までを網羅したプログラミングスクールです。
初心者や非エンジニアの方でも、Pythonの基礎から応用までしっかりと学習することができます。
キカガク
キカガク公式: キカガクは、給付金をもらってお得に学習しながらAI人材を目指すことができる、完全オンラインのプログラミングスクールです。 引用:キカガク公式 キカガクの講座は、Udemyでも高い評価を得ており、1つのコースで35,000人以上が受講している講座もあります。 実際、受講した方の生の声を見てみても、非常にポジティブなものばかりでした。(受講された方のレビューはこちらから) ※また、キカガクは一度スクールに申し込むと、全ての講座を無期限で受講することができるのでかなりお得です。 キカガクでは、無料体験を申し込むだけでUdemy上で高い評価を得たコースを実際に体験することができます。 受講できるコースは以下の2つで、合計20時間分の学習動画無料になります。 整理すると、キカガクは以下の方におすすめです。 ※キカガクの講座の無料体験は、3分ほどですぐに学習を始めることができます。
https://www.kikagaku.ai/コースの特徴
オンライン動画学習サービス、Udemyでも絶賛された高品質の学習コンテンツ
実際の講座を受講前に体験することができる
Manajob
Manajobは、株式会社インディバースが運営する動画+テキストでIT系全般を学習できる越境型IT学習サービス。
- Pythonを利用した自動化
- Web制作
など、幅広いジャンルのコンテンツを、無料で学習することができます。
実際に
- ブログサイトのデータ収集
- 自動ログインによる定期実行
- データ分析
- エステサロンのホームページ作成
など、ゴールから逆算して学習することができるのでおすすめです。
Manajobに無料登録して学習をはじめるAidemy
Aidemy(公式):https://premium.aidemy.net/
Aidemyは、AIに特化した東大発のプログラミングスクールです。 東証一部上場企業のAI研修などもおこなっている、日本最大級のAI教育サービスを提供しています。 AIを本格的に学べるプログラミングスクールの中でも、非常にハイレベルで高品質のスクールです。 Aidemyでは、Pythonに特化した講座を8種類用意しています。 各コースの金額は以下の通りです。 引用:https://premium.aidemy.net/(2023年4月時点。金額はすべて税込価格です) また、雇用保険の支給要件を満たしている方であれば、以下4つの講座で教育訓練給付制度(専門実践教育訓練)を利用できます。 対象者であれば、実際に支払った受講料のうち最大70%を支給してもらえる制度です。
Aidemyでは挫折しにくいサポートに加え、一部の講座では残りの受講期間を有意義に使える学び放題システムを利用することもできます。 丁寧なサポートを受けつつ、AIに特化した講座を受けたい方が学びやすいスクールです。 国の給付金を利用すれば安く受講できるので、興味のある方は対象者かどうか一度確認してみましょう。
3ヶ月
6ヶ月
9ヶ月
AIアプリ開発講座
¥528,000
¥858,000
¥1,078,000
データ分析講座
¥528,000
¥858,000
¥1,078,000
自然言語処理講座
¥528,000
¥858,000
¥1,078,000
実践データサイエンス講座
¥528,000
¥858,000
¥1,078,000
E資格対策講座
¥327,800
–
–
機械学習マスター講座
¥528,000
¥858,000
¥1,078,000
ビジネスAI対策講座
¥330,000
–
–
組織を変えるDX講座
¥330,000
–
–
関連記事:もっと学習したい方向け
【2020年最新】Pythonや機械学習を学べるプログラミングスクール厳選3つ
【2020年】プログラミングスクールで受講者がおすすめした厳選6社を一挙解説【体験談まとめ】