XMLサイトマップの作成をChatGPTに自動化してもらった
ブログをGoogle検索にヒットさせるにはXMLサイトマップを登録するのが必要らしい!
しかし、記事を更新するたびにこのファイルを手動で更新するのは面倒...
というわけで、XMLサイトマップを自動で更新するスクリプトをChatGPTに書いてもらいました。
この記事でわかること
以下が分かります。
-
XMLサイトマップの概要
-
ChatGPTにPythonスクリプトを書いてもらう方法(事例として)
-
XMLサイトマップの自動作成コード
XMLサイトマップとは?
以下のようなものです。
- 個々のウェブサイトに紐づくデータ。
- ウェブサイト単位であって、ページ単位ではない
- そのウェブサイト上のページの情報を検索エンジンが読み取れる形式で記述されたファイル
- 形式 = XML(拡張可能マークアップ言語)
- そのウェブサイト上のすべてのページのURL、更新頻度、重要度などの情報が含まれる
- ただし、すべての情報が絶対にそろってないとダメというわけではない
- これを用いることでそのウェブサイトのSEOが向上し、ユーザーがそのウェブサイト内の情報をより迅速に見つけられる
XMLサイトマップには通常sitemap.xml
みたいな名前が付けられます。
どうやってコードを書いた? → ChatGPT
XMLサイトマップを自動作成するPythonコードは、ChatGPTに書いてもらいました。
こちらがその時のChatGPTとのやり取りです。
-
XMLサイトマップのフォーマットを例示してもらう
-
コード作成のお願いをする
- 「pythonで以下の処理をするコードを書いてください。~~~」みたいな感じ
-
細かい改良をしてもらう
-
最終更新日時を「yyyy-mm-ddTHH:MM:SS+09:00」の形式にしてほしい
-
index.htmlにも同じ操作をしてサイトマップに含めてほしい
-
特に、最後の指示は間違えて途中までしか打ってない文章を送信したにもかかわらず意図をくみ取ってもらえたので少しびっくりでした...
最終的にどんなコードになった?
最終的に以下のコードを出してくれました。
コード内のhttps://example.com
の部分を変更すれば、割とどなたでも使えるんじゃないかなと思います~
自分が使った分には問題なく動作しました。
import glob
import os
import urllib.parse
from datetime import datetime
def get_last_modified_time(file_path):
"""
Get the last modified time of a file.
"""
modified_time = os.path.getmtime(file_path)
return datetime.utcfromtimestamp(modified_time)
def generate_sitemap():
"""
Generate sitemap.xml based on the files in the 'posts' directory.
"""
# index.htmlの最終更新日時を取得
index_last_modified = get_last_modified_time('index.html')
files = glob.glob('posts/*.html')
urls = []
for file_path in files:
file_name = os.path.basename(file_path)
last_modified = get_last_modified_time(file_path)
encoded_file_name = urllib.parse.quote(file_name)
urls.append((encoded_file_name, last_modified))
sitemap_content = '<?xml version="1.0" encoding="UTF-8"?>\n'
sitemap_content += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
# index.htmlをsitemapに追加
index_last_modified_str = index_last_modified.strftime('%Y-%m-%dT%H:%M:%S+09:00')
sitemap_content += f' <url>\n'
sitemap_content += f' <loc>https://example.com/index.html</loc>\n'
sitemap_content += f' <lastmod>{index_last_modified_str}</lastmod>\n'
sitemap_content += f' </url>\n'
for file_name, last_modified in urls:
last_modified_str = last_modified.strftime('%Y-%m-%dT%H:%M:%S+09:00')
sitemap_content += f' <url>\n'
sitemap_content += f' <loc>https://example.com/{file_name}</loc>\n'
sitemap_content += f' <lastmod>{last_modified_str}</lastmod>\n'
sitemap_content += f' </url>\n'
sitemap_content += '</urlset>'
with open('sitemap.xml', 'w') as sitemap_file:
sitemap_file.write(sitemap_content)
if __name__ == "__main__":
generate_sitemap()
おまけ
上記のコードを仮にgenerate_sitemap.py
としてprograms
フォルダに入れている場合、
以下のようなbatファイルをprograms
フォルダと同じ階層に作っておけば、
このbatファイルをダブルクリックするだけでスクリプトを実行できます。
python ./programs/generate_sitemap.py
まとめ
以下について紹介しました。
-
XMLサイトマップの概要
-
ChatGPTにPythonスクリプトを書いてもらう方法(事例として)
-
XMLサイトマップの自動作成コード
ChatGPTとのやり取りの中で、間違えて途中までしか打ってない文章を送信したにもかかわらず意図をくみ取ってもらえたのは少しびっくりでした...!
同じように自動化したりChatGPTを使ったりするときのご参考になればと思います~