Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 我怎样才能停止谷歌抓取Web服务URL?_Html_Web Crawler_Google Crawlers - Fatal编程技术网

Html 我怎样才能停止谷歌抓取Web服务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,这也导致我从网站

我发现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的代码如下所示:

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交易解决方案。所以只考虑它是一种选择。服务器端控制通常是首选的。