06/25
2016
// ==UserScript== // @name 网站地图生成助手(Clearision主题专用) // @namespace https://saber.love // @version 0.1 // @description 自动生成当前网页的sitemap信息(文章页) // @author saber // @match https://saber.love/*.html // @grant none // ==/UserScript== var sitemap_url = window.location.href; //url var sitemap_pri = "0.5"; //权重 var changefreq = "Always"; //更新频率 var sitemap_year = new Date(); //年份 sitemap_year = sitemap_year.getFullYear(); // 因为主题生成的网页里没有包含年份,所以取当前年份 var sitemap_time_info = document.getElementsByClassName("post_time")[0].innerText.replace(/\n/g, "").replace(/\t/g, "").replace("/", "-").replace(" ", ""); var sitemap_date, sitemap_time; //时间和日期 if (sitemap_time_info.length === 9) { sitemap_date = sitemap_time_info.substring(0, 4).replace("-", "-0"); //天数在10号以下时前面没有0,所以需要补上0 sitemap_time = sitemap_time_info.substring(4, 9); } else if (sitemap_time_info.length === 10) { sitemap_date = sitemap_time_info.substring(0, 5); sitemap_time = sitemap_time_info.substring(5, 10); } window.stop(); //停止页面加载,可以节省图片流量 var this_sitemap_result = ("<url>" + "\r\n" + "<loc>" + sitemap_url + "</loc>" + "\r\n" + "<priority>" + sitemap_pri + "</priority>" + "\r\n" + ("<lastmod>" + sitemap_year + "-" + sitemap_date + "T" + sitemap_time + ":00+00:00</lastmod>") + "\r\n" + "<changefreq>" + changefreq + "</changefreq>" + "\r\n" + "</url>" + "\r\n"); //拼接出本页面的sitemap信息 localStorage.setItem("mymap", localStorage.getItem("mymap") + this_sitemap_result); //把本次的结果追加存储 var next_page = document.querySelector("#p_n_r a"); if (!!next_page) { //如果有下一页就自动打开下一页 next_page.click(); } else { //如果没有下一页就弹出结果 document.write("<xmp>" + localStorage.getItem("mymap") + "</xmp>"); alert("sitemap信息生成完毕"); localStorage.setItem("mymap", ""); //清空结果 }
本文代码是针对我这个网站写的,如果其他网站想要使用,可以对照自己网站进行修改。
使用方法:
在油猴里新建一个脚本,把下面的代码粘贴进去保存即可。之后打开或刷新本站任意一个网页,代码就会从这个页面一直抓取到最新的一篇文章,自动生成sitemap信息并存储到localStorage里。抓取完成后弹窗提醒,并把抓取结果输出到页面上。这样我们只需要等结果出来,最后复制结果就行了。
注意:
由于文章信息里没有包含年份,所以年份去的是当年。如果如在当年去获取之前的文章,那么年份就是错的。比如2018年1月去获取2017年12月的,结果会显示2018年12月。这个可以在获取后批量替换下。
使用之后记得关掉这个油猴脚本,以免影响正常浏览。