我目前正在创建一个脚本,它将强制我的访问者在下载 3 个文件后注册/登录。我打算使用 cookie 来跟踪下载次数。
此外,我想防止内容农场来自不良网络爬虫。我不知道网络爬虫是否也可以像普通访问者一样存储cookie,这样我也可以阻止他们下载我的文件超过3次。
如果不支持 cookie 的网络爬虫仍然可以下载我的文件超过 3 次,有没有其他方法可以跟踪他们的访问次数?
我目前正在创建一个脚本,它将强制我的访问者在下载 3 个文件后注册/登录。我打算使用 cookie 来跟踪下载次数。
此外,我想防止内容农场来自不良网络爬虫。我不知道网络爬虫是否也可以像普通访问者一样存储cookie,这样我也可以阻止他们下载我的文件超过3次。
如果不支持 cookie 的网络爬虫仍然可以下载我的文件超过 3 次,有没有其他方法可以跟踪他们的访问次数?
你可以做的是跟踪机器人..
我不确定下面的代码是否准确,用户代理也可以伪造,但我现在就是这样做的。
//crawler detect
function crawlerDetect($USER_AGENT) {
//array of crwalers and their user agent, format: array('user agent', 'name'),
$crawlers = array(
array('useragen1', 'name1'),
array('useragen2', 'name2'),
array('useragen3', 'name3'),
array('useragen4', 'name4'), //cont..
);
foreach ($crawlers as $c) {
if (stristr($USER_AGENT, $c[0])) {
return($c[1]);
}
}
return false;
}
$crawler = crawlerDetect($_SERVER['HTTP_USER_AGENT']);
if (!empty($crawler)) {
//we have a crawler, do something
}
然后你可以随心所欲地处理它,你可以将用户代理更改为按 ips 排序,但这可能会影响很少的人类访问者..