【问题标题】:How to ignore web crawlers?如何忽略网络爬虫?
【发布时间】:2011-10-17 13:27:09
【问题描述】:

我有一个页面可以计算用户(注册用户、访客、各种用户......)访问了多少次。

所以每次查看页面时我都会更新数据库中的一个字段;是的,如果页面刷新很快,但我不介意。

当然,当一些机器人/爬虫扫描我的网站时,它们会增加这个值,我会摆脱这个。那么,是否有可以忽略的 IP 地址列表?或者一些可以帮助我做到这一点的机制?

【问题讨论】:

  • @Kumar 这是一个很好的起点(正如我在回答中提到的那样),但 PITA 爬虫/机器人通常会忽略 robots.txt
  • @marto 你说的 PITA 机器人是什么意思

标签: html ip web-crawler bots


【解决方案1】:

另一种方法是使用 ajax。大多数爬虫不解析 javascript。

【讨论】:

  • 哦...是的,这是一个好点 :) “大多数”是什么意思?有解析js的爬虫吗?
  • Google 能够解析 javascript。但是我认为它只在网址中带有#!的页面上这样做(比如twitter)。
  • 无论如何,既然谷歌应该尊重robots.txt,你也应该使用它。有了它,您可以只禁用统计页面。
  • @hugo_leonardo,即使爬虫不解析 javascript,页面本身仍然会被抓取吗?
  • @Parecier 是的,但是不会触发更新访问者计数的请求(如果他在 ajax 中实现它)。另外,上面提到的#!,如果我没记错的话,只需让谷歌知道该内容还有另一个纯 html 版本供其解析(您必须提供)。
【解决方案2】:

大多数人没有静态 IP 地址。您是否设置了robots.txt 以拒绝对爬虫/机器人的访问?尽管用户代理很容易被欺骗/更改,但您可以定期查询您的日志文件以尝试识别那些不尊重 robots.txt 的文件。

【讨论】:

  • 他不想阻止机器人,他想在访问统计中忽略它们。
【解决方案3】:

IP 地址可能会发生变化,因此这不是检测访问者是否是机器人的最佳方法。相反,我建议查看 HTTP 请求参数中的用户代理字符串。

这是用户代理字符串的列表:http://www.user-agents.org/。在类型 R 下专门查看“机器人、爬虫、蜘蛛”。

【讨论】:

  • 那些试图获取人们电子邮件的恶意爬虫怎么办?他们不会在请求中发送用户代理信息:p
  • @hugo_leonardo,这完全是一个不同的问题
猜你喜欢
  • 2012-01-13
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 2011-12-11
相关资源
最近更新 更多