每天分享一個好用的Python庫-user-agents

SilenceHL發表於2021-07-01

前言

今天分享是瀏覽器的使用者代理的第三方庫:user-agents

user-agents

簡介

unioutuser_agents是一個提供了一種通過解析(瀏覽器/HTTP)使用者代理字串來識別/檢測手機、平板電腦等裝置及其功能的簡單方法的第三方Python庫。

安裝

pip install pyyaml ua-parser user-agents

簡單使用

  • 識別訪問者的各種基本資訊可以訪問瀏覽器、裝置和作業系統屬性。 例如:

    >>> from user_agents import parse
    >>> ua_string = 'Mozilla/5.0 (HUAWEI; CPU HarmonyOS 2 5_1 like HarmonyOS 2) HUAWEIWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 HUAWEI/7534.48.3'
    >>> user_agent = parse(ua_string)
    • 訪問使用者代理的瀏覽器屬性

      >>> user_agent.browser
      Browser(family='Mobile HUAWEI', version=(5, 1), version_string='5.1')
      >>> user_agent.browser.family
      'Mobile HUAWEI'
      >>> user_agent.browser.version
      (5, 1)
      >>> user_agent.browser.version_string
      '5.1'
    • 訪問使用者代理的作業系統屬性

      >>> user_agent.os
      OperatingSystem(family='HarmonyOS 2', version=(5, 1), version_string='5.1')
        >>> user_agent.os.family
      'HarmonyOS 2'
      >>> user_agent.os.version
      (5, 1)
      >>> user_agent.os.version_string
      '5.1'
    • 訪問使用者代理的裝置屬性

      >>> user_agent.device
      Device(family='HUAWEI', brand='HUAWEI', model='HUAWEI')
      >>> user_agent.device.family 
      'HUAWEI'
      >>> user_agent.device.brand
      'HUAWEI'
      >>> user_agent.device.model
      'HUAWEI'
  • user_agents還公開了一些其他更“複雜”的屬性,這些屬性源自上面定義的一個或多個基本屬性。 就目前而言,這些屬性應該正確識別流行的平臺/裝置,始終歡迎支援較小平臺/裝置的拉取請求。目前支援以下屬性:

    • is_mobile:使用者代理是否被識別為手機(HUAWEI、HarmonyOS 手機裝置等)
    • is_table:使用者代理是否被識別為平板裝置(MatePad、MatePadPro等)
    • is_pc:使用者代理是否被識別為執行傳統的“桌面”作業系統(Windows、OS X、Linux)
    • is_touch_capable:使用者代理是否具有觸控功能
    • is_bot:使用者代理是否是搜尋引擎爬蟲/蜘蛛

作用

user_agents依靠優秀的ua-parser來對原始使用者代理字串進行實際解析,對後端開發在進行爬蟲檢測等方面做出了便利的工具。

尾巴

user_agents這類功能簡單單一的第三方庫我們自己寫一個往往也不麻煩,但是有時候我們需要將更多的精力放在其他地方,必須要進行造輪子的操作,這時候多瞭解一些第三方庫可以更有利於我們的開發。

官方文件地址

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章