java 分析ua获取浏览器信息吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 分析ua获取浏览器信息吗相关的知识,希望对你有一定的参考价值。

1,从request里可以获取用户浏览器类型,

具体操作见例子:

Enumeration e = request.getHeaderNames();
while (e.hasMoreElements())
String name = (String)e.nextElement();
String value = request.getHeader(name);
System.out.println(name + " = " + value);


这样可以遍历从客户端传来的所有头信息:
request.getHeaders("User-Agent");

获取User-Agent (客户端的类型,一般用来区分不同的浏览器)。

2,获取操作系统信息
操作系统信息 String osName = System.getProperty("os.name" );
操作系统版本 String osVersion=System.getProperty("os.version");
参考技术A javascript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览 器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。

python学习1

今天开始了新的学习,python,了解了request请求的四个步骤分别是

-指定url
-发起请求
-获取响应数据
-持久化存储

同时又了解了UA检测以及UA伪装的意思:
#UA检测:门户网站的服务器会检测对应请求的载体身份表示,检测其是网络爬虫还是一个浏览器
#UA伪装:网络爬虫可以将自己的头部修改成和浏览器一样的,以使门户网站将自己的请求误认为浏览器的请求
下面是两个案例,一个是爬取搜狗搜索页面的内容信息的,另一个是制作一个简单的网页采集器的小测试。
1.爬取搜狗首页
#requst模块
#需求:爬取搜狗首页页面是数据
import requests
#下面这句话相当于主函数
if __name__ == \'__main__\':
    #step.1 指定url
    url = \'https://www.sogou.com/\'
    #step.2 发起请求,get方法会返回一个响应对象
    response = requests.get(url=url)
    #step.3 获取响应数据.text返回的是字符串形式的响应数据
    page_text = response.text
    print(page_text)
    #step.4持久化存储,将爬取到的数据存储到sogou.html中,设置编码utf8,起名fp,
    with open(\'./sogou.html\',\'w\',encoding=\'utf-8\') as fp:
        #在fp中写入page_text
        fp.write(page_text)
    print(\'爬取结束!!!!!\')
搜狗首页

2.制作简单网页采集器

#UA检测:门户网站的服务器会检测对应请求的载体身份表示,检测其是网络爬虫还是一个浏览器
#UA伪装:网络爬虫可以将自己的头部修改成和浏览器一样的,以使门户网站将自己的请求误认为浏览器的请求
import requests
if __name__ == \'__main__\':
    #UA伪装,将对应的UserAgent封装到一个字典里
    headers={
        \'User-Agent\':\'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.54\'
    }
    #传递参数时,此处的?保留不保留都可以
    #url = \'https://www.baidu.com/s\'
    url = \'https://www.sogou.com/web\'

    #处理url携带的参数:封装到字典中
    kw = input(\'enter a word:\')
    param = {
        \'query\':kw
    }
    #对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
    response = requests.get(url=url,params=param,headers=headers)

    page_text = response.text
    fileName = kw+\'.html\'
    with open(fileName,\'w\',encoding=\'utf-8\') as fp:
        fp.write(page_text)
    print(fileName,\'保存成功!!!\')
简单网页采集器

在这两个小demo中,我发现了不同的搜索下,同一个程序可能爬取的东西就不同,因为各个不同的搜索软件对待爬虫的机制不同。

各个搜索软件中使用的搜索参数也有所差异,如百度使用wd,而搜狗使用query

 
 

以上是关于java 分析ua获取浏览器信息吗的主要内容,如果未能解决你的问题,请参考以下文章

获取浏览器版本信息

JS获取浏览器信息

java中如何在类中判断客户端操作系统是32位的还是64位的操作系统

常见浏览器的UA -- 2019-08-08 20:40:12

java服务器端,通过HttpServletRequest可以获取手机浏览器端的imsi吗?

python学习1