Pythonでsitemap.xmlを作る方法
2024-08-15 by 内田裕之
こんにちは。
Visual Studio Codeでブログを書いているうっちゃんです。
以前はWordPressでブログを書いていましたが、ドットインストールでHTML/CSSを学んでからは自分で書いています。
プラグインを使わなくなって困ったのがsitemap.xmlの作成です。
今回はPythonでsitemap.xmlを作成するプログラムのコードを紹介します。
この記事は内容に広告・プロモーションを含みます。
Pythonでsitemap.xmlを作成しよう
WordPressならプラグイン「Google XML sitemap」を使えば簡単に作成できます。
でも、自分でコードを書くようになったらsitemapをどのように作成すれば良いでしょうか。
sitemap.xmlの概要
Copilotにsitemap.xmlについて聞いてみました。
sitemap.xmlとは、ウェブサイトの各ページのURLをリスト化したXML形式のファイルです。
このファイルは、検索エンジンのクローラー(例えばGooglebot)に対して、サイト内のどのページをクロールしてほしいかを伝える役割を果たします。
具体的には、sitemap.xmlには以下の情報が含まれます。
- 各ページのURL
- 最終更新日
- 更新頻度
- ページの優先度
これにより、検索エンジンはサイトの構造を効率的に理解し、重要なページを見逃さずにクロールすることができます。
SEOにも重要な要素らしく、ブログをやっているなら作成してSearch Consoleに登録しておきたいものです。
Pythonコード
Copilotにコードを書いてもらいました。
import requests
from bs4 import BeautifulSoup
import xml.etree.ElementTree as ET
def get_all_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
links = set()
for a_tag in soup.find_all('a', href=True):
link = a_tag['href']
if link.startswith('/'):
link = url + link
elif not link.startswith('http'):
link = url + '/' + link
links.add(link)
return links
def create_sitemap(links, output_file):
urlset = ET.Element('urlset', xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for link in links:
url = ET.SubElement(urlset, 'url')
loc = ET.SubElement(url, 'loc')
loc.text = link
tree = ET.ElementTree(urlset)
tree.write(output_file, encoding='utf-8', xml_declaration=True)
if __name__ == "__main__":
url = "https://tsumawosettoku20200808.com" #ここにURLを入れる
links = get_all_links(url)
create_sitemap(links, 'sitemap.xml')
print(f"Sitemap created with {len(links)} links.")
作成したsitemap.xmlをサーバーにアップロードして、Search Consoleでxxx(URL)/sitemap.xmlを登録すれば完了です。
Copilotに聞くだけでコードを書いてくれるなんて、便利な時代になりましたね。
ただ、コードの意味はまだ勉強できていないのでこれはまた後ほど。
まとめ
今回はPythonでsitemap.xmlを作成する方法をまとめました。
Copilotをうまく活用してコーティングを楽にしましょう!
この記事がおもしろいと感じた方はX(旧Twitter)やブログで紹介いただけますと嬉しいです。
おすすめ記事
PythonでFXのデータを取得する方法【ALPHA VANTAGE】