Asp.net mvc 识别网络爬虫

Asp.net mvc 识别网络爬虫,asp.net-mvc,web-crawler,Asp.net Mvc,Web Crawler,以下属性是否足够可靠以识别搜索引擎web爬虫 我的网站在页面请求时创建一个新用户作为访客,如果他们以前没有访问过该网站,并且我得到的点击率比我的分析人员建议的要多。-还有很多 我使用上面的代码片段只创建合法的用户客户帐户,但我想有些爬虫已经通过了 也许我可以使用HttpRequest UserAgent属性来识别它们。如果有人能推荐一个当前爬虫名称的列表,我相信bing机器人就是上面提到的bing机器人 更新: 我可以肯定地知道,使用Request.Browser.Crawler无法识别他们,

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

我的网站在页面请求时创建一个新用户作为访客,如果他们以前没有访问过该网站,并且我得到的点击率比我的分析人员建议的要多。-还有很多

我使用上面的代码片段只创建合法的用户客户帐户,但我想有些爬虫已经通过了

也许我可以使用HttpRequest UserAgent属性来识别它们。如果有人能推荐一个当前爬虫名称的列表,我相信bing机器人就是上面提到的bing机器人

更新:

我可以肯定地知道,使用Request.Browser.Crawler无法识别他们,因为来自65.52.110.143的请求是一个串行罪犯,我认为这是一个bingbot。

Request.Browser.Crawler已经过时了 您可以手动将其他用户代理的检测添加为机器人程序。 使用and,而不是.NET 2.0中不推荐使用的and

例如:

<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\u Browsers
目录下


这可能会引起您的兴趣:您可能还想看看没有公认的答案,但有很多好主意。由于我不熟悉此模式,您能提供一个示例吗?我猜它会在下面几行出现:这个模式是否只可配置为机器配置?正如我所认为的那样,添加到web.config的做法同时遭到了反对。注意。我正在部署到azure,因此这可能会有问题。Web.config是针对browsercaps的,不推荐使用。这可以用.browsers扩展名保存在
app\u浏览器中。请参阅更新的答案。您可以使用for reference如果您希望每个网站都使用它,您可以添加一个*.browser文件-与上面的示例相同的格式。c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers您可以使用parentID=“Default”并避免任何特定于Mozilla的设置。创建文件后,您将需要运行aspnet_regbrowsers.exe/i这将编译一个DLL并将其注册到GAC中-现在此计算机上的所有网站将具有相同的爬虫识别。而且,我猜你的网站也会加速。缺点是这将导致所有应用程序池重置。
<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>