個人ブログのようなものです。とくにジャンルはありません。
司法試験&予備試験 体系別 短答過去問題集 刑法 第3版 司法試験&予備試験 体系別短答過去問題集シリーズ
商品ページ
Amazon
※収益広告
Python[完全]入門
商品ページ
Amazon
※収益広告
アシュリー、魔法はよいこになってから!(全3巻)
商品ページ
Amazon
※非収益広告
世界征服彼女 -Switch
商品ページ
Amazon
※収益広告
D.C.Ⅱ.S.S.~ダ・カーポⅡセカンドシーズン~(TV番組)
商品ページ
Amazon
※非収益広告
『ToHeart』プレミアムエディション -Steam 【特典】TVアニメ『ToHeart』Blu-ray Disc(全13話・2枚組)同梱
商品ページ
Amazon
※収益広告
記事の概要
Pythonを使ってFeedlyでサイトの更新情報を取得してみた
作成日:2021-10-31
最終更新日:2021-10-31
記事の文字数:3485
情報技術情報技術-WebAPIWebサイト作成
Pythonを使ってFeedlyでサイトの更新情報を取得してみた
Feedlyが公開しているWeb APIを使用して、Pythonで自動的にサイトの更新情報を取得できるようにした。
ので実際のPythonコードを交えてそのやり方のメモをここに残します。
ちなみにコードを書くのは上手くないのでクオリティには目をつぶってください。
前提
  • Feedlyは無料サービスを使用する(有料でどう変わるかがわからなかったため)
  • アクセストークン(30日間有効)は手動更新とする(無料では自動更新ができないため)
ざっくりとした流れ
大体の作業の流れは以下の通りです。 このうちpythonで自動化するのは「4~5」デス。
  1. Feedlyにサービス登録する
  2. Feedlyに更新をウォッチしたいサイトを登録する
  3. Feedlyでアクセストークンを発行する
  4. 【python】サイトの更新情報を取得する
  5. 【python】取得した情報をテキストファイルに保存する
実作業
1.Feedlyにサービス登録する
まず最初に、当然ですがFeedlyでアカウントを登録する必要があります。
以下に記事があったのでこちらの手順に従えばできるかと思います。
アカウント登録手順
2.Feedlyに更新をウォッチしたいサイトを登録する
Feedlyでアカウントを登録したら、最初に更新をウォッチしたいサイトを登録する必要があります。
以下の画像の場所から登録できます。
画像クリックで等倍
ウマ娘関連のサイトがいっぱい並んでます。
3.Feedlyでアクセストークンを発行する
APIを利用する上でアクセストークン(APIを利用するために必要なログイン情報)が必要です。
以下のURLから発行できるはずです。
アクセストークン発行ページ OAuthという認証方法を利用しているようですが、無料版ではアクセストークンを画面上でしか取得できないようで、更新(再発行)も画面上のみなので、 アクセストークンが切れる前に画面上で再度アクセストークンを発行し直す必要があります。
アクセストークンの有効期限は30日のようです。
有料版ではリフレッシュトークンを使用して、アクセストークンを再取得できるようです。
4.【python】サイトの更新情報を取得する
ここからpythonコードになります。どうでもいいところは中略です。
# パッケージの読み込み import requests ~~~中略~~~ #------------------------------------------------------------------- # 記事取得 def getArticle(streamId): ret = "" try: # コールアウトに必要な情報を格納 url = "https://cloud.feedly.com/v3/streams/contents?streamId=" + streamId + "&count=" + artNum access_token = "Bearer " + CommonFunction.getFileContent(trgtFolder + "AccessToken.txt") reqHeader = { "Content-Type":"application/json", "Authorization":access_token } res = requests.get(url, headers=reqHeader) js = res.json() for article in js["items"]: # ここで見たい情報をまとめる ret += article["title"] except: CommonFunction.updFileContent(trgtFolder + "エラー.txt", "ステータスコード:" + str(res.status_code)) return ret #-------------------------------------------------------------------
記事本体を取得するためのメソッド「getArticle(streamId)」です。
WebAPIを叩くためにあらかじめ「requests」パッケージをインポートしておく必要があります。
コードについて重要なところをかいつまんで解説します。
url = "https://cloud.feedly.com/v3/streams/contents?streamId=" + streamId + "&count=" + artNum
WebAPIのエンドポイントURLです。
「streamId」というウォッチしたいサイトごとのIDのようなものをパラメータに付与する必要があります。詳細は後述します。
countを指定することで一つのサイトごとに何個の記事を取得するかを指定できます。
access_token = "Bearer " + CommonFunction.getFileContent(trgtFolder + "AccessToken.txt")
ひとつ前の手順で作成したアクセストークンをここで定義します。
独自関数を使用していますが、単にテキストファイルの中に直接書いておいたアクセストークンを取得しているだけです。
アクセストークンの前に「Bearer 」をつけるのを忘れないようにしましょう。
reqHeader = { "Content-Type":"application/json", "Authorization":access_token }
WebAPIを叩くときのHTTPリクエストヘッダーです。
「Authorization」にアクセストークンを付けます。
アクセストークンの前に「Bearer 」をつけるのを忘れないようにしましょう(再掲)。
res = requests.get(url, headers=reqHeader) js = res.json()
リクエストに必要なのはエンドポイントURLとリクエストヘッダーだけです。
正常に取得できるとjson形式でレスポンスが来るので、json()メソッドを使って辞書型(MAP型)で受け取ると楽です。
正常に取得できなかった場合にはjson形式でないはずなので、気になる人は例外処理しましょう。
res = requests.get(url, headers=reqHeader) js = res.json()
for article in js["items"]: # ここで見たい情報をまとめる ret += article["title"]
取得したサイトの更新情報の1つ1つのページはjsonの「items」内にあるので、ここをループしています。
items内の「title」を例文では取得していますが、これはそのページのタイトルです。
実際にどんな情報がjson内に含まれているかは公式のWebAPIのリファレンスを見てください。
当該APIのリファレンス
5.【python】取得した情報をテキストファイルに保存する
以下のように取得した記事の更新情報をテキストファイルに保存しています。
「CommonFunction.updFileContent」メソッドは単にテキストファイルに保存しているだけです。
# ウマ娘記事取得 content = "" content += getArticle("feed%2Fhttps%3A%2F%2Fchomagireko.blog.jp%2Findex.rdf") CommonFunction.updFileContent(trgtFolder + "ウマ娘.txt", content)
ここで先ほど説明を省略して、「getArticle」メソッドの引数にすべきstreamIdを使っています。
streamIdですが、Feedly のページでそのサイトのページを開いてURLから確認できます。
画像クリックで等倍
FeedlyAPIのキツいところ
作った上でFeedlyAPIのキツかったところは以下です。。
(もしかしたら知らないだけでもっといい方法があるのかもしれませんが)
  • APIの利用回数制限が中々厳しい(24時間で250回? 有料プランだと増えるのかは不明)
  • 1回のAPIで1つのサイトの更新情報しか取れない(前述の利用回数制限に抵触しやすくなる)
ちなみに以下の記事がこの方法で作成されているページです。 サンプル
コメントログ
※コメントは最新50件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)
商品ページ
Amazon
※収益広告
司法試験&予備試験 体系別 短答過去問題集 刑法 第3版 司法試験&予備試験 体系別短答過去問題集シリーズ
商品ページ
Amazon
※収益広告
Python[完全]入門
商品ページ
Amazon
※収益広告
アシュリー、魔法はよいこになってから!(全3巻)
商品ページ
Amazon
※非収益広告
世界征服彼女 -Switch
商品ページ
Amazon
※収益広告
D.C.Ⅱ.S.S.~ダ・カーポⅡセカンドシーズン~(TV番組)
商品ページ
Amazon
※非収益広告
管理人作品宣伝
【アークナイツ】アークナイツ-必要素材数集計ツール
Webサイト / 最終更新:2025-02-02
【一部機能返礼特典】『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するペ…【一部機能返礼特典】『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するページです。オペレータの実装スケジュールや所持率チェッカーの機能も持ち合わせています。 以下機能は返礼特典としています。 ・アークナイツ-必要素材数集計ページ:DB登録データ出力ページ ・アークナイツ-必要素材数集計ページ:オペレータ一覧ページ(昇進0→2に必要な理性換算値ランキング) ・アークナイツ-必要素材数集計ページ:オペレータ一覧ページ(スキル特化に必要な理性換算値ランキング)

HPで閲覧する返礼特典
利用素材等の詳細情報
【アークナイツ】アークナイツ運動会-関所破壊レース
動画 / 最終更新:2025-01-16
アークナイツ生息演算の岸壁の関の関門を誰が最速で破壊できるかを競います。…アークナイツ生息演算の岸壁の関の関門を誰が最速で破壊できるかを競います。

YouTubeで閲覧するニコニコ動画で閲覧する
利用素材等の詳細情報
作品一覧はこちら
関連ページ
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-03
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-02
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-01
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
GIF / APNG(アニメーション付きPNG)ファイル解析ページ
ファイル読込・操作 以下に調べたいファイルを読み込ませてください。 ファイル情報 カラーパレットを…
gifler.js仕様メモ
本ページの趣旨 「gifler.js」という、gifアニメーションをcanvasに簡単に表示できる…
【プログラミング】実例で分かるかもしれない再帰処理
本ページは以下動画の台本を書き起こしたものです 解説の趣旨・方向性 皆さん、こんばんは今回はプログ…
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-公開
概要 SNSツイートを一元化するためのツールを作成しています(古い記事ですが、こちらのページで紹介…
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-Python
概要 概要 SNSのツイートを一元化する際の備忘録というかPythonコードの共有です。 それぞれ…
Windows-PowerShellを使用してのフォルダ内のファイル名を連番にリネームする
以下PowerShellコードを実行することで、フォルダ内のすべてのファイルのファイル名を「0001…
SCSSとやらでメディアクエリと疑似要素の組み合わせに小一時間苦戦したという話
SCSSとやらでメディアクエリと疑似要素の組み合わせに小一時間苦戦したという話 当然ですが本サイト…
管理人ツイート
本サイトのタグ一覧
NovelAIR18VRoidWebサイト作成Webツールととモノ。アークナイツアークナイツ-ステージ攻略日記アズールレーンアズールレーン-日記ウマ娘ギャラリーゲームデビラビローグプログラミングホラーポケットタウン怪談気ままな日記情報技術情報技術-WebAPI知的財産権統合戦略白夜極光本サイトについて魔王スライム様がんばる!漫画
人気記事
メイド・オブ・ザ・デッド-攻略お助け情報
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
783.9340 pt
ポケットタウン_パズル一覧
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
641.2545 pt
剣と魔法と学園モノ。2G - パーティ編成確認ツール
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
201.0943 pt
アークナイツ-昇進2率ランキング
アークナイツのTier表を作る際の備忘録です こちらのページで、昇進2率を基にTier表を作ろうと…
99.9459 pt
ロックマンエグゼ3-バグのかけら必要数まとめ-
バグのかけら必要数 必要数 これぐらいあれば足りるはず。 コレクト要素に関わる部分だけなら、ギガチ…
73.4694 pt
アークナイツ-常設商品-理性換算
概要 "常設商品でお得な商品はどれか"というのを理性に換算して一覧化したものとなります。 絶対的に…
69.3333 pt
アークナイツ-大陸版とグロ版(日本版)の実装遅れの比較
大陸版とグローバル版(日本版)の実装遅れの比較 別で実装スケジュールなるものを作っており、そこでは…
58.0000 pt
アークナイツ:統合戦略#5「サルカズの炉辺奇談」-「心打つ鍵鞭」攻略お助け情報
概要 統合戦略#5「サルカズの炉辺奇談」の公式サイトからできる「心打つ鍵鞭」についての、攻略お助け…
56.3333 pt
最新記事
剣と魔法と学園モノ。3 - パーティ編成確認ツール
ツール概要 ととモノ。3のパーティ編成を考える際に使うツールです。 攻略本や攻略wikiを参考にし…
ポケットタウン_パズル一覧
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
ゲーム『イカれた狩場の看板娘』の紹介・レビュー
記事概要 イカれたゲームを紹介するぜ! イカれた狩場の看板娘! 以上だ! ちなみにそんなイカれてな…
アークナイツ-2025大感謝祭・春商品-理性換算
概要 "「2025大感謝祭・春商品」でお得な商品はどれか"というのを理性に換算して一覧化したものと…
『ToHeart』プレミアムエディション -Steam 【特典】TVアニメ『ToHeart』Blu-ray Disc(全13話・2枚組)同梱
商品ページ
Amazon
※収益広告