防止爬虫遵循POST表单操作

| 我的网站上有简单的表格:
<form method=\"POST\" action=\"Home/Import\"> ... </form>
我收到大量错误报告,因为抓取工具向
Home/Import
发送了
HEAD
请求 通知表格为POST。 问题 为什么搜寻器尝试搜寻那些动作? 我可以采取什么措施来防止这种情况发生? (我已经在robots.txt中找到了主页) 处理那些无效(但正确)的“ 1”要求的好方法是什么? 细节: 如果重要的话,我使用Post-Redirect-Get模式。 平台:IIS 7.5上的ASP.NET MVC 3.0(C#)     
已邀请:
        1)搜寻器通常会发出HEAD请求以获取响应的mime类型。 2)HEAD请求不应为POST调用动作处理程序。如果我看到对资源的​​很多HEAD请求,我不希望搜寻器搜寻,我会给它一个链接,我希望它搜寻。大多数抓取工具都会阅读Robots.txt     
        您可以在Web服务器级别禁用头请求...针对apache:
<LimitExcept GET POST>
deny from all
</LimitExcept>
您可以通过添加以下内容在robots.txt级别上进行操作:
Disallow: /Home/Import
头请求用于获取有关页面的信息,而无需获取整个页面(如上次修改时间,大小等)。这是一项高效的工作。您的脚本不应由于头请求而产生错误,而这些错误可能是由于代码中缺少验证。您的代码可以检查请求http方法是否为\'head \'并执行其他操作。     
        4年前,但仍在回答问题1:Google确实尝试通过仅向URL发送\“ GET \”和实际的\“ POST \”请求来爬网POST表单。请参阅他们的博客。原因在于网络的本质:不良的Web开发人员将其内容链接隐藏在POST搜索表单的后面。为了获得该内容,搜索引擎必须即兴创作。 关于#2:robots.txt的可靠性各不相同。 关于#3:超级干净的方法可能是:HTTP Status 405如果特别是HEAD请求是您的问题,则不允许使用此方法。不过,不确定浏览器是否会喜欢这样。     

要回复问题请先登录注册