PythonのNews APIでトップニュースを取得する方法【サンプルコード付き】
News APIは、世界中のニュースサイトから記事を検索・取得できる非常に有名なAPIです。このAPIを利用すれば、任意のニュースサイトから最新のトップニュースの見出しを簡単に取得できます。
ただし、News APIを使うにはAPIキーが必要です。APIキーはNews API公式サイトで無料登録すると発行できますので、事前に取得しておきましょう。
サンプルコード:BBCのトップニュースを取得する
以下は、Pythonのrequestsライブラリを使って、BBC Newsのトップニュースの見出しを番号付きで表示するサンプルコードです。
import requests
def top_news():
# BBC News API
my_api_key = "ここにあなたのAPIキーを入力"
my_url = f"https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey={my_api_key}"
my_open_bbc_page = requests.get(my_url).json()
my_article = my_open_bbc_page["articles"]
my_results = []
for ar in my_article:
my_results.append(ar["title"])
for i in range(len(my_results)):
print(i + 1, my_results[i])
# ドライバーコード
if __name__ == '__main__':
# 関数呼び出し
top_news()
補足:上記コードは旧バージョン(v1)のエンドポイントを使用しています。現在のNews APIでは、/v2/top-headlines?sources=bbc-news&apiKey=... の形式が推奨されているため、環境に合わせてURLを読み替えてください。
pandas DataFrameを活用して扱いやすくする
取得したニュースデータを後から分析したり加工したりする場合は、pandasのDataFrameに変換しておくと格段に作業がしやすくなります。JSON形式のレスポンスは、pd.DataFrame.from_dict や .apply([pd.Series]) を使うだけで、簡単にDataFrameへ変換できます。
import pandas as pd # JSONレスポンスからDataFrameを作成 df = pd.DataFrame.from_dict(my_open_bbc_page)["articles"].apply(pd.Series) print(df[["title", "description", "url"]])
DataFrame化しておけば、特定の列の抽出や並べ替え、CSVファイルへの保存なども直感的な操作で行えます。ニュースデータを継続的に収集・活用したい場合には、ぜひこの方法を取り入れてみてください。
-
PythonのNews APIでトップニュースを取得する方法【サンプルコード付き】
News APIは、世界中のニュースサイトから記事を検索・取得できる非常に有名なAPIです。このAPIを利用すれば、任意のニュースサイトから最新のトップニュースの見出しを簡単に取得できます。 ただし、News APIを使うにはAPIキーが必要です。APIキーはNews API公式サイトで無料登録すると発行できますので、事前に取得しておきましょう。 サンプルコード:BBCのトップニュースを取得する 以下は、Pythonのrequestsライブラリを使って、BBC Newsのトップニュースの見出しを番号付きで表示するサンプルコードです。 import requests def top_new
-
PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法
はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c