タグ別アーカイブ: go-sitemap

sitemap.xml をよしなに取得する go-sitemap を公開しました

golang で開発・運用している Web クローラの設計を見直すに当たり, 分離できそうな機能を分割しパッケージにすることにしました。そのうちの 1 つとして sitemap.xml を取得し Sitemap 構造体を生成する部分を公開しました。

go-sitemap

どういう部分で使っているのか

某 Web クローラでは各 Web サイトの sitemap.xml から全ページの URL を取得, さらにそこからデータを加工, ページデータの取得といった処理を行っています。その sitemap.xml からのページ URL 取得処理部分を go-sitemap で実装しています。

sitemap.xml 取得の面倒なところ

ファイル名が sitemap.xml だったとしても中身を見るまで サイトマップインデックス なのか サイトマップ かわからない場合があります。

例えば, この blog の sitemap.xml の中身は <sitemapindex...>...</sitemapindex> で囲まれているサイトマップインデックスです。サイトマップインデックスは複数のサイトマップ(<urlset...>...</urlset>) への参照を持っています。1 つのデータとしてページ URL をまとめるにはすべてのサイトマップファイルをパースしまとめる必要があります。

go-sitemap ではサイトマップインデックス or サイトマップか自分で判定せずに呼び出し Sitemap 構造体として返します。

続きを読む