PythonでTwitterにアクセスせず日経新聞のニュースツイートを取得する【サンプルコードあり/Twitter API v2】

2021-10-16
Main Image

目次

こんにちは。

ふと、日経新聞のニュースを効率よく見たいと思い立ち、細かい内容はどうでもいいのでなんとか一括で見出しを取得できないかと考えてみました。

とはいえ新聞社のサイトにアクセスすると大量の広告が表示されたり、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を使って日経新聞のツイートからニュース記事の見出しを表示させました。

情報化社会における多忙な現代人にとって、「いかに余計な情報にアクセスせずに必要な情報にアクセスするか」という問題が付き纏います。

今回の方法をぜひ取り入れて、無駄なノイズをインプットせず、自分の時間を有効活用していきましょう。

それでは〜

ads【オススメ】未経験からプログラマーへ転職できる【GEEK JOBキャンプ】
▼ Amazonオススメ商品
ディスプレイライト デスクライト BenQ ScreenBar モニター掛け式
スマートLEDフロアライト 間接照明 Alexa/Google Home対応

Author

Penta

都内で働くITエンジニアもどき。好きなものは音楽・健康・貯金・シンプルでミニマルな暮らし。AWSクラウドやデータサイエンスを勉強中。学んだことや体験談をのんびり書いてます。TypeScript / Next.js / React / Python / AWS / インデックス投資 / 高配当株投資 More profile

Location : Tokyo, JPN

Contact : Twitter@penguinchord

Recommended Posts

Copy Right / Penguin Chord, ペンギンコード (penguinchord.com) 2022 / Twitter@penguinchord