`

对User Agent的检测与模拟

阅读更多

      在PHP项目中,需要对送至服务器端的Http请求,检测其User Agent,如何做?

      在Http请求消息头中,包含一个field: User-Agent,表明了发送请求的Consumer.在服务器端程序中,

则通过此信息来检测.

      可以自己编写代码,或者利用第三方提供的函数/类库,来帮助进行.

      在PHP中,可以通过变量$_SERVER['HTTP_USER_AGENT'] ,函数get_browser(),来完成.下面这个

blog有较多描述:

      php判断客户端浏览器的类型

      如果是采用第三方提供的库,则能更快速地达到目的.下面的这个git库,就提供了一个可用的类:

      https://github.com/mavrick/Browser.php

 

      在实践过程中,上述的类中没有提供对Baiduspider的检测,就需要自己进行定制了.定制过程中

最主要的关注信息,是各个User Agent的具体字符串内容.有很多站点提供此类信息,比如:

      1. http://www.httpuseragent.org/

      2. http://www.useragentstring.com/

      当然,去官网能找到最新的信息.比如想了解Google的网页搜索robot使用的User Agent,可以看看这里:

      https://support.google.com/webmasters/answer/1061943

 

      接下来,需要使用某种方式来模拟某个特定User Agent的Http请求,以便测试.有什么工具?

      能够达到模拟测试的工具较多.有专门完成此任务浏览器端扩展.在下面的web中:

      How to Switch Your User-Agent to Googlebot

      就提到了User-agent switcher,这是一个可用于Firefox的扩展,其User Agent 列表可自定义;作者提供的

最新的列表文件,可以在此找到.附件中是当前的最新数据.

      上面的web中还提到另一个工具Header detector,没有实际使用过.

      同样,有些工具会附带简单的User Agent模拟功能,比如Firefox上的扩展MozBar,它是一个SEO工具栏,

附带了简单的User Agent模拟.

      而搜索引擎自身也可能会提供一些方法.比如Google在Webmaster tools里发布的新工具: Fetch as Googlebot,可以模拟Googlebog抓取网页.

分享到:
评论

相关推荐

    web端user-agent请求头

    对于爬虫开发与测试人员而言,理解和掌握User-Agent的格式与构成尤为重要,因为这关系到如何让爬虫或测试工具更真实地模拟不同的用户访问行为,以避免被网站识别并封锁。 #### 二、User-Agent的构成解析 根据给定...

    2.5_User-agent伪装1

    2. **爬虫抓取**:在爬虫编程中,为了避免被目标网站识别为爬虫而封禁,可以通过随机选取或模拟常见的浏览器User-Agent来降低被检测的风险。 User-Agent 字符串的一般结构如下: `浏览器标识 (操作系统标识; 加密...

    CPALEAD自动填表工具 支持 user agent伪造

    3. **反反爬策略**:学习如何避免被网站检测到并封锁,包括User Agent切换、延时策略、IP代理等。 4. **数据解析**:了解HTML和DOM解析,能够定位和填写网页上的表单元素。 5. **安全与合规**:理解自动填表可能涉及...

    10000个移动User Agent(UA库)

    移动User Agent,通常简称为UA(User Agent),是网络浏览器发送到服务器的一个字符串,用于标识访问者所使用的设备、操作系统、浏览器类型及版本等信息。这个字符串对于网站开发者和服务提供商至关重要,因为它允许...

    python使用自定义user-agent抓取网页的方法

    在这个例子中,我们设置了`User-Agent`为`Mozilla/5.10`,模拟Firefox的一个旧版本。这样,服务器可能会认为请求来自一个真实的浏览器,而不是爬虫。 然后,使用`urlopen`方法打开并读取URL,返回一个`Response`...

    UA收集与检测

    - Opera浏览器更是允许用户自定义User-Agent字符串,使其能够模拟任何已知的浏览器。 #### UA的使用总体概况 在HTTP协议中,User-Agent字段主要用于帮助服务器识别客户端的浏览器类型和版本等信息。然而,随着...

    Python爬虫小技巧之伪造随机的User-Agent

    总之,伪造随机的User-Agent是Python爬虫中常用的一种反反爬策略,通过模拟真实的浏览器环境,可以提高爬虫的成功率和稳定性。但请注意,爬虫活动应遵守相关法律法规,尊重网站的robots.txt协议,确保合理合法地使用...

    微信域名检测代码

    1. **User-Agent 模仿**:微信浏览器有其特有的User-Agent字符串,检测代码需要设置这个字符串来模拟微信内置浏览器的请求。 2. **代理检测**:为了更准确地模拟微信环境,可能需要通过微信内置的网页浏览代理进行...

    Laravel开发-agent .zip

    可以使用`Agent::setUserAgent()`方法来设置自定义的User-Agent字符串,以便在测试环境中模拟不同设备或浏览器。 总之,Laravel的`Agent`类是构建响应式Web应用和提供个性化用户体验的关键工具。通过充分利用其提供...

    Python使用scrapy采集数据时为每个请求随机分配user-agent的方法

    - 随机选择User-Agent时,最好避免在极短时间内对同一网站发送过多相同的User-Agent,以减少被网站检测到异常行为的可能性。 - 需要考虑爬虫对目标网站的访问频率,避免因请求过于频繁而被网站封禁IP。 通过上述...

    rar模拟微信访问wap页面刷投票

    8. **优化与调试**:在实际应用中,可能需要不断优化模拟行为,使其更难以被检测,同时也要解决可能出现的错误,如页面加载失败、验证码识别错误等。 总之,“rar模拟微信访问wap页面刷投票”涉及的技术领域广泛,...

    提高scrapy的爬取速度

    使用User-Agent池可以随机更换User-Agent,从而模拟不同的客户端访问,减少被识别的风险。 1. **编写User-Agent池中间件**:创建一个名为`rotate_useragent.py`的文件,定义一个类`RotateUserAgentMiddleware`继承...

    禁止电脑端模拟手机网页js脚本

    然而,如果网站设计者不希望这种行为发生,他们可以通过检测用户代理(User Agent)字符串来判断访问者是否来自真实的移动设备。用户代理是浏览器发送给服务器的一个标识,包含了浏览器类型、版本等信息。电脑端模拟的...

    微信域名拦截检测源码

    4. **模拟微信环境**:为了更准确地模拟微信内置浏览器的行为,可能需要设置特定的请求头或参数,例如模拟微信内置浏览器的User-Agent字符串。 5. **多维度判断**:除了状态码,还可以结合实际返回的内容、时间消耗...

    浏览器自动化过检测(Python+JS算法)

    然而,许多网站会通过检测User-Agent、Cookies、JavaScript执行等特征来判断是否为自动化程序。在Python中,我们可以使用Selenium库来模拟真实用户行为,因为它能够控制浏览器并执行JavaScript代码。 二、...

    模拟GOOGLE搜索

    6. **反爬机制**:Google有多种反爬机制,如CAPTCHA验证码、IP封锁、User-Agent检测等。模拟搜索时需注意遵守Google的使用政策,避免被识别为机器人。 7. **隐私与法律**:在进行网络爬虫时,必须遵守网站的robots....

    User-Agent Switcher-crx插件

    网站可以检测您正在使用的浏览器并提供不同的内容 - 这就是为什么iPhone和Android用户在浏览Web时看到特殊移动网站的原因。使用此Chrome扩展名,您可以在用户 - 代理字符串之间快速轻松地切换。此外,您可以设置每次...

    http模拟工具

    5. **安全测试**:如何使用该工具进行安全测试,例如模拟恶意Referer值来检测服务器对跨站请求伪造(CSRF)的防护,或测试XSS过滤机制。 6. **网络爬虫**:模拟工具在编写网络爬虫时的应用,通过改变请求头以避免被...

    爬虫用户代理

    1. **模拟真实访问**:通过设置与真实浏览器相同的User-Agent,可以让爬虫看起来更像正常的用户访问,从而降低被网站封禁的风险。 2. **适应不同网页布局**:有些网站会对不同的浏览器或设备提供不同的内容或布局。...

Global site tag (gtag.js) - Google Analytics