首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在4.5框架中捕获.browser文件中的用户代理

在4.5框架中捕获.browser文件中的用户代理
EN

Stack Overflow用户
提问于 2013-10-21 20:06:36
回答 1查看 394关注 0票数 0

当从.NET框架从4.0迁移到4.5时,一些爬虫似乎无法在ASP.NET应用程序中捕获。

我在App_Browsers目录中有一个.browser文件,其中包含以下定义:

代码语言:javascript
复制
<browser id="Baiduspider" parentID="Default">
<sampleHeaders>
  <header name="Connection" value="close"/>
  <header name="Accept" value="*/*"/>
  <header name="Accept-Encoding" value="gzip"/>
  <header name="Accept-Language" value="zh-cn,zh-tw"/>
  <header name="Host" value="www.example.com"/>
  <header name="User-Agent" value="Baiduspider+(+http://www.baidu.com/search/spider.html)"/>
</sampleHeaders>
<identification>
  <userAgent match="Baiduspider"/>
</identification>
<capabilities>
  <capability name="crawler" value="true"/>
  <capability name="browser" value="Baidu.com"/>
  <capability name="majorversion" value="0"/>
  <capability name="minorversion" value=".0"/>
  <capability name="version" value="0.0"/>
</capabilities>
</browser>

但是这条线

代码语言:javascript
复制
Request.Browser.Crawler

返回

代码语言:javascript
复制
false

对于Baidu.com用户代理:

代码语言:javascript
复制
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

我怀疑百度没有很好地形成他的用户代理字符串,因为括号的原因,但这是在4.0 .NET框架中工作的。

有谁可以帮我?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-12-13 01:05:06

试着改变

代码语言:javascript
复制
<browser id="Baiduspider" parentID="Default">

代码语言:javascript
复制
<browser id="Baiduspider" parentID="Mozilla">

文件v4.0.30319\Config\Browsers\generic.browser的内容可能如下所示:

代码语言:javascript
复制
<browser id="Mozilla" parentID="Default">
<identification>
<userAgent match="Mozilla" />
</identification>

那么,在4.5版本中,在达到自定义定义之前,它可能会匹配“第一个”?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19494042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档