Python で Blogger のサイトマップを取得する方法

Image
Photo by Kat Juska on Unsplash

Blogger のサイトマップがある場所

以前調べたので、Blogger のサイトマップがどこにあるのかはわかっている。

Blogger のサイトマップを Google Search Console に送る方法

https://rteak-blog.blogspot.com/sitemap.xml
sitemap.xml の中を見ると次のようになっている。
(元々改行やインデントはなく、後で編集したもの。)

page=1 と page=2 がある。
今後投稿記事が増えたら、これらも増えていく。( 150 記事ずつ?)

それぞれの中に、投稿記事の URL(<loc> ~ </loc> で囲まれている) と最終更新日(<lastmod> ~ </lastmod> で囲まれている)が記載されている。
(下図は page=2 の方。これも改行やインデントはなく、後で編集したもの。)

投稿記事の URL と最終更新日を抜き出す方法

投稿記事の URL と最終更新日時を抜き出すには、ライブラリ requests と re を使用する。
また、各投稿記事のタイトルを抜き出すには、ライブラリ BeautifulSoup を使用する。
手順は次のとおり。

  1. サイトマップを取得する(34 行目~ 38 行目参照)
    requests で https://rteak-blog.blogspot.com/sitemap.xml の中身をテキスト化し、re で <loc> ~ </loc> で囲まれている部分(サイトマップの URL )をリスト( sitemap )にセットする。
    今回の場合は、 https://rteak-blog.blogspot.com/sitemap.xml?page=1 と https://rteak-blog.blogspot.com/sitemap.xml?page=2 をリスト( sitemap )にセットする。

  2. サイトマップの数だけ処理を繰り返す( 41 行目参照)
    リスト( sitemap )の要素数分繰り返す。
    今回はサイトマップが 2 つあるので、2 回繰り返す。

  3. 投稿記事の URL と最終更新日を抜き出す( 43 行目~ 49 行目参照)
    requests で各サイトマップの中身をテキスト化し、re で <loc> ~ </loc> で囲まれている部分(投稿記事の URL )をリスト( loc )にセットする。
    また、<lastmod> ~ T で囲まれている部分(最終更新日)をリスト( lastmod )にセットする。
    ~ </lastmod> としなかったのは、時刻は不要だったため。
    47 行目で <url> の前に改行コードを入れているのは、改行コードで文字列を区切ることにより、findall で文字列をうまく抜き出すため。

  4. 投稿記事のタイトルを抜き出す( 51行目~ 55行目参照)
    各サイトマップの URL と最終更新日をすべて抜き出してから投稿記事のタイトルを抜き出す。
    requests で投稿記事の URL の中身をテキスト化し、BeautifulSoup で title タグに記載されているタイトルを抜き出して、リスト( title )にセットする。

  5. サイトマップを HTML で編集する( 5行目~ 24行目参照)
    投稿記事の URL 、タイトル、最終更新日をテーブル表示できるよう HTML で編集する。

今後の課題

そもそも次のことがやりたくて、この課題に取り組み始めた。

  1. 出力した HTML を自動でサイトマップのページに表示させたい。
  2. 各記事を自然言語処理でテキスト分類し、関連記事を自動で表示できるようにしたい。

早々に解決したいと思っている。

ソースコード

実行結果

タイトル 最終更新日
キカガク(KIKAGAKU)を復習する 2020-08-03
FX の運用成績(2020年7月) 2020-08-01
見切り発車の効用 2020-08-01
PyCharm を使って HTML コードを整形する 2020-07-31
キカガク(KIKAGAKU)で「テキスト分類」を学ぶ 2020-07-30
キカガク(KIKAGAKU)で「機械学習による自然言語処理」を学ぶ 2020-07-30
キカガク(KIKAGAKU)で「自然言語処理の基礎」を学ぶ 2020-07-29
Pytorch を Windows10 にインストールした 2020-07-29
キカガク(KIKAGAKU)で「畳み込みニューラルネットワークの代表的なモデル」を学ぶ 2020-07-29
税金は適正かつ効果的に使うべきである 2020-07-29
キカガク(KIKAGAKU)で「データ拡張」を学ぶ 2020-07-29
ブログの質と量を高める方法について考えたこと 2020-07-29
FX の運用成績(2020年6月) 2020-08-01
非常事態宣言が解除されたからと言っても新型コロナウイルスの感染リスクがなくなったわけではない 2020-06-30
ブログを一年間続けて思ったこと 2020-07-30
ショッピングサイトの商品を定期的にチェックするプログラムを Python で作った 2020-07-29
毎日書くのはやめよう 2020-06-20
新しいスマホが欲しくなったら 2020-08-01
ボーっと過ごす 2020-08-01
感謝する 2020-08-01
キカガク(KIKAGAKU)で「畳み込みニューラルネットワークの精度向上」を学ぶ 2020-08-01
SDカードを内部ストレージ化する 2020-08-01
受信ボックスの未読メールをなくす方法 2020-08-01
それ、本当に必要なの? 2020-08-01
プロセスより結果が大事 2020-06-02
キカガク(KIKAGAKU)で「ファインチューニング」を学ぶ 2020-06-07
FX の運用成績(2020年5月) 2020-08-01
キカガク(KIKAGAKU)で「畳み込みニューラルネットワークの実装」を学ぶ 2020-05-31
キカガク(KIKAGAKU)で「畳み込みニューラルネットワークの基礎」を学ぶ 2020-05-31
ブログカードを超簡単に作る方法 2020-05-30
自分が変わればいい 2020-05-30
要件定義とプロトタイプ 2020-05-28
Tensorflow のインストールがうまくいかないときの対処 2020-07-29
Web 記事を聴く 2020-05-25
新型コロナウィルス禍の影響とこれからの期待 2020-05-24
キカガク(KIKAGAKU)で「ニューラルネットワークの実装(回帰)」を学ぶ 《練習問題》 2020-05-24
キカガク(KIKAGAKU)で「ニューラルネットワークの実装(回帰)」を学ぶ 2020-05-30
会議の前に結論を決めてしまう 2020-05-22
今日一日を組み立てる 2020-05-21
タスク管理 2020-05-20
敬体と常体 2020-05-18
キカガク(KIKAGAKU)で「ニューラルネットワークの実装(分類)」を学ぶ 2020-05-30
他人の力を借りる 2020-05-16
話題 2020-05-30
置き配サービスは治安を脅かす 2020-05-13
スマートフォンの操作を自動化する 2020-05-30
特別定額給付金を申請した 2020-05-30
スマートフォンで音楽アプリを開いたときに自動で Bluetooth をオンにする方法 2020-05-30
Web ページにソースコードを掲載する方法 (GitHub を利用) 2020-05-13
Blogger の表編集機能は便利 2020-05-30
Blogger に新機能! まだ見捨てられてはいないようだ 2020-07-30
サイトのテーマを変更した 2020-05-15
キカガク(KIKAGAKU)で逆伝播を学ぶ 2020-05-30
Blogger と note で迷った 2020-05-30
OGP を設定した 2020-05-30
Web ページにソースコードを掲載する方法 2020-05-30
フォトギャラリー 2020-07-28
FX の運用成績(2020年4月) 2020-08-01
ちょうどよい長さの記事 2020-05-30
嫌われる勇気 2020-05-30
サイトをプチ改造 2020-05-30
プライバシーポリシーについて 2020-05-30
パルスオキシメータは個人で買うべきでない 2020-05-14
キカガク(KIKAGAKU)でニューラルネットワークの概要と順伝播を学ぶ 2020-05-06
ミスを減らすための対策 20 箇条 2020-05-08
見られていないからこそ力を尽くす 2020-05-06
初動が大事 2020-04-29
HP製ノートブックPCで毎回 fn キーを押さなくてもファンクションキーが使えるようにする方法 2020-04-29
効率のよい資格試験対策 2020-05-08
リモートワークに向いている性格 2020-05-06
新しいPCのセッティング 2020-04-29
個人でやっているシンコロ対策 2020-05-03
Blogger のサイトマップを Google Search Console に送る方法 2020-04-29
休日の過ごし方 2020-04-29
ブログの楽しみ 2020-04-29
成果を出せるのが優れたリーダ 2020-05-06
キカガク(KIKAGAKU)で機械学習実践(教師なし学習)を学ぶ 2020-05-06
キカガク(KIKAGAKU)で機械学習実践(教師あり学習)を学ぶ 2020-08-03
リモートワークには筋トレが欠かせない 2020-05-06
チャンスが巡って来るまで我慢 2020-04-29
セルフカット 2020-05-06
マスクは有効か? 2020-05-06
生物学的に見て 2020-04-29
キカガク(KIKAGAKU)で AI を学ぶ 2020-08-03
公金助成 2020-05-03
リモートワーク 自分で決めて守っているルール 2020-05-06
FX の運用成績(2020年3月) 2020-08-01
自分なりの基準を持てば他人に振り回されることはない 2020-05-04
いまここに生きる 2020-04-29
現金は残しておくべき 2020-05-01
矛盾発見 2020-05-01
仕事を楽しむ 2020-05-01
リモートワークして感じたこと 2020-05-06
リモートワーク 2020-05-05
スタバの mobile order & pay を使ってみた 2020-05-01
喉のポリープが消えた 2020-05-01
新型コロナウイルス禍の一市民のブログ 2020-05-06
Deep Learning の学習記録 2020-05-06
Python で日数を加算(減算)した日付を求める 2020-05-09
レンタサイクル 2020-05-01
損切りは難しい 2020-05-02
Python で日数計算 2020-05-09
Google Colaboratory 2020-05-03
Python 開発環境再構築 2020-07-31
ディープラーニング学習計画 2020-05-03
Python で Web スクレイピング(2) 2020-05-09
進捗報告は成果物で確認する 2020-05-03
休日の過ごし方 2020-05-03
e-Tax で確定申告 2020-05-03
Python で Web スクレイピング 2020-05-09
ブログのメリット 2020-05-02
Python ファイルをビルドしてEXE ファイルを作る方法 2020-05-06
Python で Google Sheets の複数シートを操作する方法等 2020-05-14
Python で Google Sheets にアクセスするために必要な手続き 2020-05-09
ブログネタ 2020-05-02
Python で Google Sheets を操作するための環境設定 2020-05-09
FX の運用成績(2020年1月・2月) 2020-08-01
PyCharm を Windows 10 にインストールする 2020-08-03
Python を Windows 10 にインストールする 2020-05-04
利益確定と損切りは感情を入れない 2020-05-04
読者を気にせずに書く 2020-05-02
日課 2020-05-04
願った後は忘れろ 2020-05-04
目的と目標の共有 2020-05-05
本を読んだら 2020-05-05
判断は間違ってもいい 2020-05-05
スケジュールは毎日更新すべき 2020-05-06
常に正しい選択をする方法 2020-05-06
すべて借り物 2020-05-06
免疫力を上げるには 2020-08-01
本当の強さ 2020-05-08
一行でもいいから書く 2020-05-02
続けていればものになるさ 2020-05-30
夜にシャワーを浴びる効用 2020-05-08
再開 2020-05-08
トラブルは起きて当たり前 2020-05-09
旅程はGoogle Calendar で立てる 2020-05-09
とにかく100万円貯める 2020-05-09
願望を叶えるには 2020-05-11
ミスをしないために 2020-05-11
散り椿 2020-05-11
英語多読 2020-05-12
決して諦めない 2020-05-12
成功の基準は自分で決める 2020-05-12
自分の基準で生きる 2020-05-13
投資について 2020-05-13
好きなように生きる 2020-08-01
脳を鍛えるには運動しかない 2020-05-16
ジムに行かなくても 2020-05-06
まず目的を確認しよう 2020-05-01
プロジェクトマネージャが忘れてはならないこと 2020-05-16
思い込み 2020-05-16
覚悟を決める 2020-05-17
こだわりを捨てる 2020-05-17
国を守る 2020-05-17
生産性を高める仮説と検証 2020-05-20
投資こそ強力な社会貢献になる 2020-05-20
頭から洗う?体から洗う? 2020-05-08
締切を設定する 2020-05-20
先延ばしも悪くはない 2020-05-22
すぐやる 2020-05-22
中断しても再開すれば習慣化できる 2020-05-22
とりあえず、5分間だけやろう 2020-05-22
緩く続けて行こう 2020-05-22
文章を書く 2020-05-22
はじめに 2020-07-29
Posted in  on 8/04/2020 by rteak |