Skip to content

Crazymuyang/sitemap-factory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SITEMAP-FACTORY

这是一段简单的生成 sitemap.xml 网站地图的脚本,需要 node 环境支持。

脚本中涉及插件:

目前它只实现了对 loc 的记录,并未处理 上次更新时间(lastmod)、更新频率(changefreq)、权重(priority) 这三个值,后续会继续完善。

<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.xxx.com/</loc>
  </url>
</urset>

假如你网站内容并不是很多,或许可以拿它来尝试一下,但要注意 loopspan 的设置。 假如设置时间间隔太短,可能会给网站服务器带来较大的压力甚至更严重的后果; 或者你想要测试的网站服务器设置了反爬虫策略,则可能导致产生大量 429 状态的请求甚至当前 ip 被封而彻底拒绝访问;etc。

下面是使用示例,GOOD LUCK :)

/**
 * sitemap 生成器
 * @param {Object} options
 *   @param {String} host 填写网站域名 | 必填
 *   @param {String} entry 填写初始链接,须带有 http 协议头 | 必填
 *   @param {String} path 填写文件保存路径,通过 path 处理的。eg: path.resolve(__dirname, './') | 必填
 *   @param {String|RegExp} filter 过滤条件,由字符串或正则字面量构成的数组, 默认 []
 *   @param {String} filename 输出的文件名,默认 sitemap
 *   @param {Number} maxretry 最大重启次数,当 url 池为空后,间隔一定时间再次检测是否为空,默认 3
 *   @param {Number} loopspan 循环时间间隔,设置为大于 60 的整数,默认 100ms
 *   @param {Boolean} isdeep 是否向站内爬行,若否,只统计本页面内的链接,默认 true
 * 
 */
const path = require('path');
const SitemapFactory = require('../index.js');

const options = {
  host: 'www.xxx.com',
  entry: 'https://www.xxx.com/',
  path: path.resolve(__dirname, './'),
  filter: [
    /page=[2-9]{1}\d*/iu, 
  ],
  filename: 'demo',
  maxretry: 2,
  loopspan: 200,
  isdeep: true,
}

const sitemapFact = new SitemapFactory(options);
sitemapFact.start();

About

produce a sitemap for your website

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published