#站点地图 #XML #自动 #更新 #页面 #哈希 #URL

auto_sitemap

自动更新最后修改时间的站点地图

3 个不稳定版本

0.2.1 2023年8月13日
0.2.0 2023年8月13日
0.1.0 2023年8月13日

#2910解析器实现

MIT/Apache

19KB
367

auto sitemap

通过跟踪单个页面的更改来保持您网站 站点地图 的更新。

安装

cargo add auto_sitemap

用法

// Crawls https://example.com
let mut new_sitemap = auto_sitemap::Sitemap::generate_by_crawling("https://example.com")
    .await
    .unwrap();

// Downloads the old sitemap.
let old_sitemap = auto_sitemap::Sitemap::import("https://example.com/sitemap.xml")
    .await
    .unwrap();

// Combines with URLs from the old site.
// If a hash of a page is different, its `lastmod` value is updated.
new_sitemap.combine_with_old_sitemap(&old_sitemap).unwrap();

// Serializes the sitemap to a string.
let mut buf = std::io::BufWriter::new(Vec::new());
new_sitemap.serialize(&mut buf).unwrap();
println!("{}", String::from_utf8(buf.into_inner().unwrap()).unwrap());
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2023-08-13T11:30:46Z</lastmod>
    <xhtml:meta name="auto_sitemap_md5_hash" content="1f0e8893210f6496401d171ff77c7e92" />
  </url>
</urlset>

它是如何工作的?

auto_sitemap 爬取您的网站。每个发现的 URL 和对应页面的内容哈希存储在站点地图中。当下次生成站点地图时,它将检查特定页面的哈希是否已更改;如果是,则将页面的 lastmod 更新为当前时间。

依赖关系

~19–33MB
~597K SLoC