Html 我怎样才能停止谷歌抓取Web服务URL?
我发现GoogleBot正在抓取JavaScript/AJAX代码中引用的Web服务URL。这个URL已经作为一个排除项出现在robots.txt中,但谷歌似乎不再遵守robots.txt来决定什么是爬行——它似乎只是用它来知道什么是索引的 谢天谢地,这些服务URL只返回数据,而不执行操作,但它会弄乱我们收集的统计数据,这是非常不受欢迎的。我个人看不出Google是如何找到Web服务的URL的,除非它在Javascript代码中爬行任意字符串(这似乎不太可能?) 对于一些URL,这也导致我从网站上收到很多Elmah错误消息,其中说: System.InvalidOperationException:无法识别以“/GetShortList.”结尾的URL的请求格式。“…因为Google在仅支持POST的情况下尝试获取URL 它在其中查找URL的代码如下所示:Html 我怎样才能停止谷歌抓取Web服务URL?,html,web-crawler,google-crawlers,Html,Web Crawler,Google Crawlers,我发现GoogleBot正在抓取JavaScript/AJAX代码中引用的Web服务URL。这个URL已经作为一个排除项出现在robots.txt中,但谷歌似乎不再遵守robots.txt来决定什么是爬行——它似乎只是用它来知道什么是索引的 谢天谢地,这些服务URL只返回数据,而不执行操作,但它会弄乱我们收集的统计数据,这是非常不受欢迎的。我个人看不出Google是如何找到Web服务的URL的,除非它在Javascript代码中爬行任意字符串(这似乎不太可能?) 对于一些URL,这也导致我从网站
function GetShortlistsForUser() {
$.ajax({
type: "POST", url: "/WebService/WebService.asmx/GetShortlists",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { /*--CUT--*/ });
}
});
因此,我应该通过替换斜杠来混淆URL,还是有更好的方法来阻止这些被爬网?(1)尝试在javascript代码中破坏URL格式,例如
var breaker="x/G";
......
url: "/WebServic"+"e/WebService."+"asm"+breaker+"etshortlists",
由于谷歌可能会使用正则表达式来确定哪个部分是url…(我不确定这是否会阻止爬虫,但如果它起作用,您不需要将其破坏到这个程度,因为它也会破坏代码阅读体验。)
(2) 在您的服务器上,Google crawler通常使用自定义的代理字符串,因此您可以拒绝(或忽略)它.我想知道google是否真的在评估/执行JS以找出URL?我不敢相信它会根据在JS中找到的每个字符串盲目地重新测试页面,或者每个人的服务器日志都是垃圾。如果是这样,那么任何模糊处理技术都不会真正起作用。@NickG对。模糊处理字符串不是一个I交易解决方案。所以只考虑它是一种选择。服务器端控制通常是首选的。