【问题标题】:Does Web Crawler Store Cookies?网络爬虫是否存储 Cookie?
【发布时间】:2013-07-29 03:29:10
【问题描述】:

我目前正在创建一个脚本,它将强制我的访问者在下载 3 个文件后注册/登录。我打算使用 cookie 来跟踪下载次数。

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

如果不支持 cookie 的网络爬虫仍然可以下载我的文件 3 次以上,有没有其他方法可以跟踪他们的访问次数?

【问题讨论】:

  • 爬虫一般不存储cookies,你可以利用captchas来降低不良爬虫的下载率,或者干脆使用Javascript,爬虫避开java
  • 依赖爬虫
  • 感谢您的回复。那么,还有其他方法可以追踪它们吗?通过 IP 地址跟踪它们将要求所有共享互联网连接的访问​​者在检测到其中 1 个已下载超过 3 次的访问者后进行注册。

标签: php web-crawler


【解决方案1】:

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

我不确定下面的代码是否准确,用户代理也可以伪造,但我现在就是这样做的..

//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 排序,但这可能会影响很少的人类访问者..

【讨论】:

  • 我认为这不是一个好主意,因为正如您所说,网络爬虫很容易伪造用户代理。我希望有比这更好的。
  • 我也一直在寻找更好的选择,但到目前为止这是我能得到的最好的选择。如果不希望网络爬虫能够下载,可以使用java,爬虫不会碰那部分代码..
  • 唷!为什么我以前没有想过这个。是的,使用 javascript 就可以了。谢谢朋友。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
相关资源
最近更新 更多