百度Sitemap生成器
程序员文章站
2022-04-14 20:25:47
今天用了两个小时, 为无限影视(https://www.88tv.org)开发了一个小工具, 用来生成baidu的sitemap。 方便用。 因为该电影站的视频内容详情网页的ID是自增长的,所以可以按顺序快速生成。 不用再写爬虫去一个一个链接爬了。 1. 输入URL模板, 注意{*}, 这个是用来放 ......
今天用了两个小时, 为()开发了一个小工具, 用来生成baidu的sitemap。 方便用。
因为该电影站的视频内容详情网页的id是自增长的,所以可以按顺序快速生成。 不用再写爬虫去一个一个链接爬了。
1. 输入url模板, 注意{*}, 这个是用来放id的。
2. id区间,要生成多少到多少的页面链接。
3. 排除id: 排除这些id。
4. 更新时间, 这是sitemap中的结构, 一般指该页面的更新时间。 频繁度=更新频繁度,
5. 这工具加入了其它内容, 方便整理视频栏目, 首页及其它页面的内容。
这个工具不用读数据库, 不用爬网站, 只要你的网站内容id有规律就能用。
示例附件下载在末尾。
预览图:
事件代码:
common.pageinfo pg; if (cbchangefreq.text == "") { messagebox.show("没有选择更新频率."); return; } list<common.pageinfo> list = new list<common.pageinfo>(); for (int i = (int)nudmin.value; i < nudmax.value; i++) { if (((system.collections.ilist)rbtpc.text.split(',')).contains(i.tostring())) { continue; } pg = new common.pageinfo(); pg.loc = txturl.text.trim().replace("{*}", i.tostring()); pg.lastmod = txtupdatedate.text; pg.priority = nudpriority.value.tostring(); pg.changefreq = cbchangefreq.selecteditem.tostring(); list.add(pg); } sitemap.url = list; string mysitemapstr = sitemap.generatesitemapstring(application.startuppath + "\\" + txttemplate.text.trim()); rtbtxt.text = mysitemapstr;
辅助类:
using system; using system.collections.generic; using system.text; namespace common { using system; using system.collections.generic; using system.io; using system.linq; using system.text; /// <summary> /// 生成站点地图sitemap /// </summary> public class sitemap { public list<pageinfo> url { get; set; } /// <summary> /// 生成sitemap字符串 /// </summary> /// <returns></returns> public string generatesitemapstring(string file = "") { stringbuilder sb = new stringbuilder(); sb.appendline("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.appendline("<urlset>"); string text = ""; #region myregion if (!string.isnullorwhitespace(file)) { text = system.io.file.readalltext(file); } sb.appendline(text); #endregion foreach (pageinfo pi in url) { sb.appendline("<url>"); sb.appendline(string.format("<loc>{0}</loc>", pi.loc)); sb.appendline(string.format("<lastmod>{0}</lastmod>", pi.lastmod)); sb.appendline(string.format("<changefreq>{0}</changefreq>", pi.changefreq)); sb.appendline(string.format("<priority>{0}</priority>", pi.priority)); sb.appendline("</url>"); } sb.appendline("</urlset>"); return sb.tostring(); } /// <summary> /// 保存site文件 /// </summary> /// <param name="filepath">路径</param> public void savesitemap(string filepath, string content) { using (streamwriter m_streamwriter = new streamwriter(filepath, false, encoding.utf8)) { m_streamwriter.flush(); m_streamwriter.basestream.seek(0, seekorigin.begin); m_streamwriter.write(content); } } } public class pageinfo { /// <summary> /// 网址 /// </summary> public string loc { get; set; } /// <summary> /// 最后更新时间 /// </summary> public string lastmod { get; set; } /// <summary> /// 更新频繁程度 /// </summary> public string changefreq { get; set; } /// <summary> /// 优先级,0-1 /// </summary> public string priority { get; set; } } }
下载:https://files.cnblogs.com/files/jackrebel/baidusitemap.zip
非常简单的源代码。
上一篇: python摸爬滚打之day11----函数闭包,迭代器
下一篇: DOM事件流的三个阶段