PythonでTwitterにアクセスせず日経新聞のニュースツイートを取得する【サンプルコードあり/Twitter API v2】
目次
こんにちは。
ふと、日経新聞のニュースを効率よく見たいと思い立ち、細かい内容はどうでもいいのでなんとか一括で見出しを取得できないかと考えてみました。
とはいえ新聞社のサイトにアクセスすると大量の広告が表示されたり、Twitterでも余計なツイートが目に入ったりして、情報をとろうとするだけで無駄にライフを消耗してしまいます。
ということで、PythonでTwitterのAPIを叩いて、無駄なノイズを脳に一切インプットすることなく、日経新聞社のツイートからニュースの見出しを取得しようと試みます。
だいぶ前の記事ですが、PythonでTwitter API v2を叩いてツイートを取得する方法【サンプルコードあり】の実践編です。
Twitter APIの利用方法や、PythonからAPIを叩く方法は上の記事にまとまってますので、基本はそちらの記事を参考にしてください。
本記事の方法で日経新聞に限らずどんなツイッターアカウントのツイートもまとめて取得できますので、ご自身の目的に合わせてご活用ください。
まずTwitter APIの利用に必要な変数をセットする
自分のIDの取得方法はこちらの記事を参考にしてください。
前提として、実行するPythonファイルと同じディレクトリに、config.py
というファイルに認証情報を置いておきます。
config.pyの中身はこのようにしておきます。hogehoge
部分に自分の認証情報を記載します。
# Twitter ID
TWITTER_ID = "hogehoge"
# Consumer Keys
API_KEY = "hogehoge"
API_SECRET_KEY = "hogehoge"
# Authentication Tokens
BEARER_TOKEN = "hogehoge"
# Access Token and Secret
ACCESS_TOKEN = "hogehoge"
ACCESS_TOKEN_SECRET = "hogehoge"
実行するPythonファイルの中身はこちら
import json, config
from requests_oauthlib import OAuth1Session
MY_ID = config.TWITTER_ID
AK = config.API_KEY
AS = config.API_SECRET_KEY
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
以降のスクリプトはこのファイル内に記載していきます。
ツイートを取得する関数を定義する
まずURL取得。取得したいツイッターアカウントのIDを引数に想定します。
def get_api_url(ID):
url = f"https://api.twitter.com/2/users/{ID}/tweets"
return url
続いてツイートの取得。取得したいツイートの数、APIの認証情報、URLを引数にします。
params
の内容は、例によってこちらの記事をご参照。
def get_tweet(get_tweet_number, auth, url):
params = {
'expansions' : 'author_id',
'tweet.fields': 'created_at,public_metrics',
'user.fields' : 'name',
'max_results' : get_tweet_number
}
res = auth.get(url, params = params)
return res
取得したツイートを表示する関数を定義する
表示部分です。CLIに表示する想定。引数は上の関数で出力されるres
(response)です。
def display_tweet(res):
if res.status_code == 200:
tl = json.loads(res.text)
for l in tl['data']:
print('----------------------------')
print(l['text'])
print(l['created_at'])
else:
print("Failed: %d" % res.status_code)
ツイートを取得したいツイッターアカウントのIDを取得する
こちらのサービス(idtwi | TwitterのIDチェッカー)で検索すると一発で取得できます。
検索ボックスにnikkei
と入力して出てきたIDを変数にセットします。
ID = "169480493" # @nikkei
最後に、定義した関数を実行してツイートを表示させる
試しに5件取得してみます。
n = 5 # 件数セット
auth = OAuth1Session(AK, AS, AT, ATS)
url = get_api_url(ID)
res = get_tweet(n, auth, url)
display_tweet(res)
結果↓

時間表示をもう少し見やすくしたり工夫できそうです。リンクを辿らないならhttps://
以降の文字列は削除するとか。
自動化したりGUIも作ってみると面白いかもです。今度やってみます。
ちなみにリンク先は、有料会員じゃないと読めなかったりします。本当に見出しだけ見られれば良いという人向け。(笑)
まとめ
というわけで、今回はTwitterにアクセスせずにPythonを使って日経新聞のツイートからニュース記事の見出しを表示させました。
情報化社会における多忙な現代人にとって、「いかに余計な情報にアクセスせずに必要な情報にアクセスするか」という問題が付き纏います。
今回の方法をぜひ取り入れて、無駄なノイズをインプットせず、自分の時間を有効活用していきましょう。
それでは〜