解析浏览器的访问信息

简介: 一、UserAgentUtils   UserAgentUtils是一个处理user-agent 字符的一个工具。可以用来实时地处理http请求和分析http请求日志文件。这里可以使用UserAgentUtils对访问用户的浏览器类型、操作系统、设备种类等进行统计分析,从而为网址的用户量的增加,做出正确的决策。

一、UserAgentUtils
  UserAgentUtils是一个处理user-agent 字符的一个工具。可以用来实时地处理http请求和分析http请求日志文件。这里可以使用UserAgentUtils对访问用户的浏览器类型、操作系统、设备种类等进行统计分析,从而为网址的用户量的增加,做出正确的决策。项目网址为:https://github.com/HaraldWalker/user-agent-utils 

示例相关相关maven依赖如下:

<dependency>
  <groupId>nl.bitwalker</groupId>
  <artifactId>UserAgentUtils</artifactId>
  <version>1.2.4</version>
</dependency>

二、示例

相关实例代码如下:

 1 package com.sunshine.test;
 2 
 3 import org.junit.Test;
 4 
 5 import nl.bitwalker.useragentutils.Browser;
 6 import nl.bitwalker.useragentutils.UserAgent;
 7 import nl.bitwalker.useragentutils.Version;
 8 
 9 public class TestUserAgent {
10 
11     /**
12      * 
13      * @param userAgentStr
14      *            用户访问的userAgent 字符串
15      */
16     private static void getType(String userAgentStr) {
17         UserAgent userAgent = UserAgent.parseUserAgentString(userAgentStr);
18         Browser browser = userAgent.getBrowser();
19 
20         String browserName = browser.getName();// 浏览器名称
21         String group = browser.getGroup().getName();// 浏览器大类
22         Version browserVersion = userAgent.getBrowserVersion();// 详细版本
23         String version = browserVersion.getMajorVersion();// 浏览器主版本
24         System.out.println(browserName);
25         System.out.println(group);
26         System.out.println(browserVersion);
27         System.out.println(version);
28         System.out.println(userAgent.getOperatingSystem());// 访问设备系统
29         System.out.println(userAgent.getOperatingSystem().getDeviceType());// 访问设备类型
30         System.out.println(userAgent.getOperatingSystem().getManufacturer());// 访问设备制造厂商
31 
32 
33         System.out.println(String.format("===============%s-%s", group, version));
34     }
35 
36     @Test
37     public void test() {
38         String userAgent = "user-agent = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0";
39         String userAgent2 = "user-agent = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36";
40         String userAgent3 = "user-agent = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)";
41         String userAgent4 = "user-agent = Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4";
42 
43         getType(userAgent);
44         getType(userAgent2);
45         getType(userAgent3);
46         getType(userAgent4);
47     }
48 }

 运行结果如下:

    

目录
相关文章
|
4月前
|
数据采集 Web App开发 监控
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
在现代网络爬虫实践中,动态网页加载和反爬虫机制增加了数据采集的难度。采用无头浏览器技术(如Selenium与ChromeDriver)可有效模拟用户行为、执行JavaScript,获取动态内容。通过设置代理IP、伪装User-Agent和处理Cookies,提升爬虫隐蔽性和稳定性。该方案适用于电商价格监控、社交媒体数据采集和招聘信息抓取等场景,实现更高效的数据获取。
370 2
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
|
3月前
|
机器学习/深度学习 人工智能 文字识别
从“泛读”到“精读”:合合信息文档解析如何让大模型更懂复杂文档?
随着deepseek等大模型逐渐步入视野,理论上文档解析工作应能大幅简化。 然而,实际情况却不尽如人意。当前的多模态大模型虽然具备强大的视觉与语言交互能力,但在解析非结构化文档时,仍面临复杂版式、多元素混排以及严密逻辑推理等挑战。
97 0
|
5月前
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
278 17
使用Web浏览器访问UE应用的最佳实践
|
4月前
|
数据采集 Web App开发 存储
深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
本文介绍了基于无界面浏览器(如ChromeDriver)和代理IP技术的现代爬虫解决方案,以应对传统爬虫面临的反爬机制和动态加载内容等问题。通过Selenium驱动ChromeDriver,并结合亿牛云爬虫代理、自定义Cookie和User-Agent设置,实现高效的数据采集。代码示例展示了如何配置ChromeDriver、处理代理认证、添加Cookie及捕获异常,确保爬虫稳定运行。性能对比显示,Headless模式下的ChromeDriver在数据采集成功率、响应时间和反爬规避能力上显著优于传统爬虫。该方案广泛应用于电商、金融和新闻媒体等行业。
307 0
深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
|
5月前
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
216 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
5月前
|
文字识别 开发者 数据处理
多模态数据信息提取解决方案评测报告!
阿里云推出的《多模态数据信息提取》解决方案,利用AI技术从文本、图像、音频和视频中提取关键信息,支持多种应用场景,大幅提升数据处理效率。评测涵盖部署体验、文档清晰度、模板简化、示例验证及需求适配性等方面。方案表现出色,部署简单直观,功能强大,适合多种业务场景。建议增加交互提示、多语言支持及优化OCR和音频转写功能...
217 3
多模态数据信息提取解决方案评测报告!
|
5月前
|
数据采集 XML API
深入解析BeautifulSoup:从sohu.com视频页面提取关键信息的实战技巧
深入解析BeautifulSoup:从sohu.com视频页面提取关键信息的实战技巧
|
7月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
699 6
|
7月前
|
Web App开发 API Windows
取接口访问者信息[IP,浏览器,操作系统]免费API接口教程
此API用于获取访问者的IP地址、浏览器和操作系统信息,支持70多种浏览器和操作系统。通过POST或GET请求至`https://cn.apihz.cn/api/ip/getapi.php`,需提供用户ID和KEY。返回结果包括状态码、消息、IP、浏览器和操作系统信息。示例:{&quot;code&quot;:200,&quot;ip&quot;:&quot;175.154.88.178&quot;,&quot;browser&quot;:&quot;Chrome&quot;,&quot;os&quot;:&quot;Windows 10&quot;}。详情见官网文档。
|
7月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
163 63

推荐镜像

更多
  • DNS
  • 下一篇
    oss创建bucket