如何从站点地图生成器中排除网址
How can I exclude urls from Sitemap Generator
由于我在网络上没有找到一个好的(和免费的)工具来生成我的站点地图,我决定从头开始创建一个JavaScript脚本,一切正常,但由于我不太擅长正则表达式,我需要一些帮助。
我有这个函数来处理我的站点地图:
function processSitemap(myUrl,maxLinks,countMe,checkDate,customDate,defPriority,defFreq){
jQuery.post('../?route=ajax',{sitemap:'1', url:myUrl},function(data){
var resData = data.split("::|::");
var resCount = parseInt(resData[0]);
var resLinkData = resData[1];
var resLinks = resLinkData.split("'n");
var ccLinks = [];
jQuery(".linksCount").html('<br/>Crawling Link: '+ myUrl +'<br/>Links Found: ' + resLinks.length);
for (var i = 0; i < resLinks.length; i++) {
var ccData = resLinks[i].trim();
if(jQuery.inArray(ccData, linksArr) == -1){
ccLinks.push(ccData);
countLinks++;
if(countLinks != maxLinks){
jQuery("#resultList").append('<url>'+''n');
jQuery("#resultList").append(' <loc>'+ ccData + '</loc>' + ''n');
if(defPriority != 'N/A'){
jQuery("#resultList").append(' <priority>'+ defPriority + '</priority>' + ''n');
}
if(defFreq != 'N/A'){
defFreqT = defFreq.toString().toLowerCase();
jQuery("#resultList").append(' <changefreq>'+ defFreqT + '</changefreq>' + ''n');
}
if(checkDate != 'N/A'){
if(checkDate == '1'){
var fullDate = new Date();
var twoDigitMonth = fullDate.getMonth()+1+"";if(twoDigitMonth.length==1) twoDigitMonth="0" +twoDigitMonth;
var twoDigitDate = fullDate.getDate()+"";if(twoDigitDate.length==1) twoDigitDate="0" +twoDigitDate;
var currentDate = fullDate.getFullYear() + "-" + twoDigitMonth + "-" + twoDigitDate;
jQuery("#resultList").append(' <lastmod>'+ currentDate + '</lastmod>' + ''n');
}
if(checkDate == '2'){
customDate = customDate.trim();customDate=customDate.split('/');
customDate = customDate[2] + "-" + customDate[1] + "-" + customDate[0];
jQuery("#resultList").append(' <lastmod>'+ customDate + '</lastmod>' + ''n');
}
}
jQuery("#resultList").append('</url>'+''n');
}else{
jQuery(".percentimg").fadeOut();
jQuery("#resultList").append('</urlset>');
jQuery(".genCount").html('<br/>Sitemap generated for ' + countLinks + ' links!');
break;
}
}
}
if(countLinks == maxLinks){
return false;
}
if (countMe == maxLinksCrawl){
jQuery(".percentimg").fadeOut();
jQuery("#resultList").append('</urlset>');
jQuery(".genCount").html('<br/>Crawler Limit Reached! <br/> Sitemap generated for ' + countLinks + ' links!');
return false;
}
else{
linksArr = linksArr.concat(ccLinks);
myUrl= linksArr[countMe];
countMe++;
if (parseInt(countMe) < parseInt(linksArr.length)) {
processSitemap(myUrl,maxLinks,countMe,checkDate,customDate,defPriority,defFreq);
}
else{
jQuery(".percentimg").fadeOut();
jQuery("#resultList").append('</urlset>');
jQuery(".genCount").html('<br/>Sitemap generated for ' + countLinks + ' links!');
return false;
}
}
});
}
使用正则表达式,我希望从data
一些不需要的网址中排除,例如
https://example.com/notifications&filter=chats
https://example.com/page&b=repost
最简单的方法是什么?
将
以下测试插入到回调函数中:
function(data){
// ...
for (var i = 0; i < resLinks.length; i++) {
if (resLinks[i].match(/('/notifications&|&b=repost)/)) {
continue;
}
//...
}
// ...
}
您可以使用
此正则表达式查找所有带有example.com
后跟notifications
或&b=repost
的网址
https:'/'/example.com'/(?=.*(notifications|&b=repost))
正则表达式演示
相关文章:
- Sencha Touch构建-排除文件
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- 如何为排除无穷大和NaN的数字声明Flow类型
- 通过iframe登录到远程站点
- JS条件故障排除
- Javascript移动站点重定向问题
- 如何在Webpack中从导出中排除供应商模块peerDependencies
- JQuery-在本地工作,但未定义$,仅在部署的站点上定义
- 火灾在卸载前确认警报仅适用于外部站点
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 如何排除此正则表达式中的空白匹配项
- 使用Regex排除标签中的尾随点
- 如何排除对象'在$.toJSON之前或期间的s id属性
- Django无法通过urls.py配置找到djangular/app.js文件.如何进行故障排除
- Cordova/Phonegap在主要的Cordova网络视图中加载外部站点
- 在WordPress站点中加载jquery.js后加载javascript代码
- 如何使用yyyymmdd格式在日期中添加n天,但排除周日
- Sails.js指定要从自动插入中排除的js文件
- 对 Drupal 站点的客户端 JS 问题进行故障排除
- 如何从站点地图生成器中排除网址