【发布时间】:2012-12-20 20:19:55
【问题描述】:
我开发了一个 PHP 应用程序,它的主要目的是从数据库中获取数据。我想防止通过使用机器请求从数据库中获取所有记录(我的意思是那些由非人类发出的请求,即像 CURL 这样的机制,你通常会通过 CAPTCHA 阻止此类请求。)。
我怎样才能只让搜索引擎抓取我的数据,而没有其他人抓取我的数据,而不会造成明显的可用性损害?
【问题讨论】:
标签: php request web-scraping search-engine
我开发了一个 PHP 应用程序,它的主要目的是从数据库中获取数据。我想防止通过使用机器请求从数据库中获取所有记录(我的意思是那些由非人类发出的请求,即像 CURL 这样的机制,你通常会通过 CAPTCHA 阻止此类请求。)。
我怎样才能只让搜索引擎抓取我的数据,而没有其他人抓取我的数据,而不会造成明显的可用性损害?
【问题讨论】:
标签: php request web-scraping search-engine
要打开您的问题,我单击了链接,并且我的浏览器向 stackOverflow 服务器发出请求并请求此页面。这与 cURL 的作用相同……除了它不能处理 JavaScript。但同样,我没有代表我的浏览器解析 JavaScript。这又是一个程序。
我真正需要强调的是,实际上您无法阻止机器伪造用户活动。
但是,如果您有兴趣,这里有一些技巧。我个人更喜欢不直接涉及人类的方法。
您不能通过其用户代理阻止机器人。 cURL 和其他程序可以在发出请求时使用用户指定的不同用户代理。
您可以在 Google 网站管理员中心调整 googlebot 的行为方式。尝试将其与您的防洪机制相匹配。 请记住,Google 建议您不要依赖其用户代理。
【讨论】: