【问题标题】:Identifying web crawlers识别网络爬虫
【发布时间】:2012-08-01 02:50:45
【问题描述】:

以下属性是否足够可靠以识别搜索引擎网络爬虫?

Request.Browser.Crawler

如果我的网站之前没有访问过该网站并且我获得的点击次数比我的分析建议的要多,我的网站会根据页面请求创建一个新用户作为访客。 - 更多。

我使用上面的 sn-p 只创建合法的用户访客帐户,但我认为一些爬虫正在通过。

也许我可以使用 HttpRequest UserAgent 属性来识别它们。如果是这样,有人可以建议一个当前爬虫名称的列表,我相信例如 bing bot 是 call bingbot 提到的here

Request.UserAgent

更新:

我确定他们没有被使用 Request.Browser.Crawler 识别,因为来自 65.52.110.143 的请求是连环罪犯,我认为这是一个 bingbot。

【问题讨论】:

标签: asp.net-mvc web-crawler


【解决方案1】:

Request.Browser.Crawler 很遗憾已经过时了

您可以手动添加对其他用户代理的检测作为机器人。 使用 Browser Element 而不是 browserCaps,因为它在 .NET 2.0 中已被弃用

例子:

<browsers>
    <browser id="Googlebot" parentID="Mozilla">
        <identification>
            <userAgent match="^Googlebot(\-Image)?/(?'version'(?'major'\d+)(?'minor'\.\d+)).*" />
        </identification>
        <capabilities>
            <capability name="crawler" value="true" />
        </capabilities>
    </browser>
    .
    .
    .
</browsers>

这必须使用 .browser 扩展名保存在您应用程序的 App_Browsers 目录下。

(List of Regexes to Match)

【讨论】:

  • 因为我不熟悉这个架构,你能提供一个例子吗?我猜它看起来像:
  • 这个模式也只能配置给机器配置吗?我相信同时添加到 web.config 已弃用。注意。我正在部署到 azure,所以这可能会出现问题。
  • Web.config 用于 browsercaps,已弃用。这可以保存在带有 .browsers 扩展名的 app_browsers 中。请参阅更新的答案。可以参考this file
  • 如果您希望每个网站都使用这个,您可以添加一个 *.browser 文件 - 格式与上面的示例相同。 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers 您可以使用 parentID="Default" 并避免任何 Mozilla 特定设置。创建文件后,您需要运行 aspnet_regbrowsers.exe /i 这将编译一个 DLL 并将其注册到您的 GAC - 现在这台机器上的所有网站都将具有相同的爬虫识别。而且,我猜您的网站也会启动得更快。缺点是这将导致您的所有应用程序池重置。
猜你喜欢
  • 2012-01-14
  • 1970-01-01
  • 2023-03-23
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
相关资源
最近更新 更多