2013-07-29 54 views
1

我目前正在创建一个脚本,在下载3个文件后强制我的访问者注册/登录。我打算使用cookie来跟踪下载次数。网络爬虫是否存储Cookie?

此外,我想阻止恶意网络爬虫的内容养殖。我不知道网络爬虫是否也可以像普通访问者一样存储cookie,这样我也可以阻止他们下载我的文件超过3次。

如果不支持cookie的网络抓取工具仍然可以下载我的文件超过3次,是否有其他方式来跟踪他们的访问次数?

+0

爬行一般不存储cookie,你可以使用验证码来减少恶意抓取工具的下载速度,或者简单地使用Javascript,因为抓取工具可以避免Java –

+0

取决于抓取工具 – Orangepill

+0

感谢您的回复。那么,有没有其他方法可以追踪它们?通过IP地址跟踪它们将要求共享互联网连接的所有访问者在检测到其中一个已经下载了3次以上的人之后注册。 – jaypabs

回答

0

你可以做的是跟踪机器人..

我不知道,如果下面的代码将是准确的,以及useragents可以伪造,但这是我如何做到这一点现在...

//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进行排序,但可能影响少数人的访客..

+0

我相信这不是一个好主意,因为正如你所说,网络爬虫可以轻易地伪造useragent。我希望比这更好。 – jaypabs

+1

我一直在寻找更好的选择,但直到现在,这是最好的,我可以得到。如果你不想让网络爬虫能够下载,你可以使用java,爬虫不会触及那部分代码。 –

+0

哎呀!为什么我以前没有想过这件事。是的,使用JavaScript将会诀窍。谢谢哥们。 – jaypabs