防止机器人处理来自网站的图像

时间:2010-12-14 09:34:42

标签: php

我有一个用PHP技术创建的网站,我想阻止机器人从网站上处理图像。防止机器人从网站上复制图像的最佳方法是什么?

请确保它不会损害SEO。 请确保这不会影响spyders和crawler索引网站。

5 个答案:

答案 0 :(得分:3)

正如其他人所说,首先告诉机器人,如果可能,他们无法使用robots.txt访问图像。表现良好的机器人将遵守这一点。

搜索“阻止热链接”。标准方法是使用mod_rewrite规则阻止对域内没有引用者的图像文件的请求。这将阻止大多数机器人。

您可以使用get_browser和最近的browscap.ini文件匹配数百个常见抓取工具的用户代理字符串。这在共享主机上通常不可用,但是如果您阅读手册中的注释,您应该找到一个可以从您自己的代码运行的get_browsers实现。

所有这些都将影响搜索引擎优化,因为主要的搜索引擎都有图像搜索。它还会影响新的Google网络预览,当您将鼠标悬停在搜索结果上时会显示该网页的屏幕截图,因为在创建屏幕截图时,您将阻止机器人查看网页上的图片。

答案 1 :(得分:1)

您可以配置robots.txt以允许某些机器人,但不允许其他机器人:

E.g:

User-Agent: *
Disallow: /images

User-Agent: Googlebot-Image
Disallow: 

这只是一个例子。您还可以允许其他表现良好的机器人。

但这对于那些只是忽略robots.txt的行为不当的机器人没有任何作用。对他们来说真的没有解决方案,虽然身份验证可以帮助一点(你可以通过帐户限制图像访问)。

答案 2 :(得分:0)

不确定它是否有效,但如果您在/ images /文件夹中包含所有图像,则可以设置

User-agent: *
Disallow: /images/

答案 3 :(得分:0)

一些可能的解决方案可能包括使用Flash显示图像或在页面加载后通过Javascript动态加载它们。您还可以考虑通过IP限制页面加载以防止极快的访问,从而使机器人在抓取站点时更慢。但是,这些解决方案有明显的缺点。

没有任何故障保护方法可以阻止您网站上的内容抓取。想要抓住他有权访问的网站的有能力的开发人员可以毫不费力地这样做。最好的办法是给内容添加水印或将其放在付费墙后面。

答案 4 :(得分:0)

很难,没有万无一失的方法可以做到这一点,你可以尝试让机器人更加困难。

目前想到的是:

  • 使用javascript创建图片链接(将强制机器人在页面上执行javascripts)

  • 使用css sprites(即将几个图像组合成一个图像),这可能使它对机器人不太有用(例如,如果他们只是想收获并重新显示页面上的图像,它看起来会有点难看在他们的网站上,当几个图像被打包成一个)

  • 检查http_referer并仅在http_referer是允许的域时提供正确的图像

  • 使用您的域名在图片顶部放置水印,使其对其他网站不太有用