`

对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抓取网页.

分享到:
评论

相关推荐

    User-Agent Switcher-crx插件

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

    具有网络指纹绕过的爬虫工具python

    1. **User-Agent轮换:** 爬虫工具可以周期性地修改 User-Agent 头部字段,使请求看起来来自不同的浏览器或设备,增加爬虫被检测的难度。 2. **代理IP使用:** 爬虫工具可以集成代理池,通过切换不同的代理IP地址...

    Python反爬虫机制的主要策略

    在爬取网页时,我们可以通过设置随机生成的User-Agent来伪装成浏览器或其他合法的客户端请求,从而增加爬虫被检测到的概率。另一种方案是使用真实的User-Agent,从浏览器的开发者工具中获取并直接使用该User-Agent...

    爬虫基础、示例、反爬+python

    1. User-Agent检测:网站服务器会检查HTTP请求中的User-Agent字段,如果该字段表明请求来自爬虫,服务器可能会拒绝请求或返回特定提示。 2. IP封禁:网站服务器会监测访问频率和请求来源的IP地址,如果某个IP地址...

    Python爬虫基础知识

    一些常见的反爬手段包括User-Agent检测、频率限制和动态加载内容等。为了应对这些反爬措施,爬虫开发者需要伪装User-Agent、控制请求频率,并处理JavaScript渲染的内容。 为了构建一个有效的爬虫环境,开发者需要...

    情感分析,微博情感分析,微博水军检测,水军检测,营销粉检测,僵尸粉检测,微博爬虫.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    python项目反爬虫技术的研究.zip

    - 针对常见的网络爬虫行为,研究有效的反爬虫手段,如IP地址检测、User-Agent检查、验证码技术等。 - 探讨如何规避现有的反爬虫策略,以及如何优化爬虫算法来应对这些策略,包括基于深度学习和机器学习的先进方法。 ...

    基于telnet的轻量化定时检测公司各服务是否正常运行的java程序(仅3M大小的jar包).zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    淘宝、京东、拼多多商品店铺基础信息爬虫 Selenium+Python技术栈.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    Luna 是一款基于视觉的、强大的自动化工具.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    TZVideo:追剧小助手微信小程序

    TZVideo(豆瓣接口问题已解决) 截至20210404,豆瓣接口通过后端模拟手机...由于豆瓣检测到微信小程序发送的请求的话,豆瓣会拒绝提供服务,而小程序是无法更改user-agent的, UI及功能 功能预期 五大模块 首页 有片单,

    《iPhone开发实战》.(Christopher Allen).pdf

    3.3.1 通过user_agent检测iphone31 3.3.2 通过css检测iphone31 3.3.3 使用css进行优化32 3.4 使用iphone chrome32 3.4.1 三个栏32 3.4.2 web剪贴33 3.5 捕获iphone事件34 3.5.1 单指触摸34 3.5.2 ...

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    eXosip_set_user_agent("##YouToo0.1"); if(0 != ret) { AfxMessageBox("Couldn't initialize eXosip!\n"); return false; } ret = eXosip_listen_addr (IPPROTO_UDP, NULL, 0, AF_INET, 0); if(0 != ret) ...

    JavaScript高级教程

    第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................

Global site tag (gtag.js) - Google Analytics