【发布时间】:2016-10-25 08:39:02
【问题描述】:
所以我试图在我的控制器/树枝中创建一些跟踪服务,但我也试图绕过所有的爬虫/蜘蛛/机器人/不管调用它。
在我的控制器中,如果用户已经访问过该页面,我会呈现一个缓存视图,但机器人不遵守此规则,因为它们在重新启动后会“清除”所有内容,因此我的跟踪正在增加不受控制的数字.
我想知道是否有任何方法可以防止这种情况发生,所以即使我的网站正在被抓取(这种情况经常发生),我的统计数据也保持稳定。
我在这里不写任何代码,因为它做了什么并不重要,只是一些 MongoDB 插入。
我这样做是为了在用户访问页面时缓存响应,并在项目发生更改时禁用缓存 ($lastmodified)。
$response = new Response();
$response->setPublic();
$response->setMaxAge(0);
$response->setSharedMaxAge(600);
$response->setLastModified($lastmodified);
$response->headers->set('X-Cache-Type','client-no-cache');
if($response->isNotModified($request)){
$response->setContent(304);
return $response;
}
【问题讨论】:
-
您要归档的内容不是很清楚。你想让爬虫使用缓存还是防止爬虫访问网站时收集一些统计信息?
-
我想让爬虫使用缓存,或者如果我检测到它是爬虫就禁用服务调用以防止虚假统计
标签: php symfony caching web-crawler