【问题标题】:Detect device (mobile vs. tablet vs. PC) from browser / user agent data in R从 R 中的浏览器/用户代理数据检测设备(移动设备、平板电脑和 PC)
【发布时间】:2021-07-08 14:37:27
【问题描述】:

我正在处理来自网站的日志数据,并且我有一个变量表示浏览器,例如,

Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36

电脑版

Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1

适用于移动设备。

我知道对于 Python,有一个 library 可以做到这一点,R 是否有等效的解决方案?

我尝试了uaparserjs package,它给出了设备系列、设备品牌等信息,但是如何创建一个变量来指示 PC、移动设备或平板电脑类别中的设备?

library(uaparserjs)
ua_parse("Mozilla/5.0 (Linux; Android 10; HRY-LX1T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.105 Mobile Safari/537.36")

# A tibble: 1 x 10
  userAgent                                       ua.family  ua.major ua.minor ua.patch os.family os.major device.family device.brand  device.model
  <chr>                                           <chr>      <chr>    <chr>    <chr>    <chr>     <chr>    <chr>         <chr>         <chr>       
1 Mozilla/5.0 (Linux; Android 10; HRY-LX1T) Appl~ Chrome Mo~ 89       0        4389     Android   10       HRY-LX1T      Generic_Andr~ HRY-LX1T   

理想情况下,我将能够检测 PC、移动设备和平板电脑。

【问题讨论】:

    标签: r browser device user-agent detect


    【解决方案1】:

    将 PC 与移动/平板电脑区分开来很容易:只需使用来自 ua_parse 的“os.family”列。

    但要准确区分手机和平板电脑,您需要一些屏幕信息(物理尺寸、分辨率、密度...) Detect phone vs tablet

    【讨论】:

    • 谢谢。您是否只需使用 ifelse 语句并手动将 os.family 分配给设备?像 device
    • 我会使用dplyr::case_when。但是,是的,这类似于对许多 if_else 进行操作。
    猜你喜欢
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多