杰瑞科技汇

Python如何随机生成UserAgent?

在 Python 中生成随机 User-Agent 是一个非常常见的需求,尤其是在进行网络爬虫、自动化测试或需要模拟不同浏览器访问时,下面我将为你介绍几种主流且实用的方法,从简单到专业。

Python如何随机生成UserAgent?-图1
(图片来源网络,侵删)

使用 fake-useragent 库(最推荐)

这是最流行、最简单的方法,因为它内置了一个庞大的 User-Agent 列表,并且可以轻松获取随机值。

安装

你需要安装这个库:

pip install fake-useragent

使用方法

from fake_useragent import UserAgent
# 创建一个 UserAgent 对象
ua = UserAgent()
# 获取随机 User-Agent
random_ua = ua.random
print(f"随机 User-Agent: {random_ua}")
# 你也可以指定浏览器类型
# Chrome
chrome_ua = ua.chrome
print(f"Chrome User-Agent: {chrome_ua}")
# Firefox
firefox_ua = ua.firefox
print(f"Firefox User-Agent: {firefox_ua}")
# Safari
safari_ua = ua.safari
print(f"Safari User-Agent: {safari_ua}")
# Edge
edge_ua = ua.edge
print(f"Edge User-Agent: {edge_ua}")
# Opera
opera_ua = ua.opera
print(f"Opera User-Agent: {opera_ua}")

优点:

  • 简单易用:几行代码就能搞定。
  • 浏览器覆盖广:支持 Chrome, Firefox, Safari, Edge, Opera 等主流浏览器。
  • 平台多样:可以指定 Windows, macOS, Linux, Android, iOS 等平台。
  • 版本随机:获取的 User-Agent 版本是动态变化的,不易被识别。

缺点:

Python如何随机生成UserAgent?-图2
(图片来源网络,侵删)
  • 依赖外部文件fake-useragent 库在首次运行时,会从 GitHub 下载一个 useragents.json 文件来存储 UA 列表,如果你的环境无法访问外网,可能会失败。

使用 fake_useragent 库的改进版 fake-useragent[use_system_certs]

如果你在使用 fake-useragent 时遇到 SSL 证书相关的错误,可以安装这个改进版,它会使用系统自带的 SSL 证书。

pip install "fake-useragent[use_system_certs]"

使用方法与原版完全相同。


手动维护一个 User-Agent 列表(最可控)

如果你不希望引入额外的库,或者需要完全控制 User-Agent 的来源,可以自己创建一个列表,然后从中随机选择。

创建 User-Agent 列表

# 创建一个包含常用 User-Agent 的列表
user_agents_list = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15',
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59',
    'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36',
    'Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1',
    # ... 可以继续添加更多
]

随机选择

使用 Python 内置的 random 模块。

import random
# 从列表中随机选择一个
random_ua = random.choice(user_agents_list)
print(f"随机 User-Agent: {random_ua}")

优点:

  • 无外部依赖:不需要安装任何第三方库。
  • 完全可控:你可以精确地知道有哪些 User-Agent,方便筛选和修改。

缺点:

  • 维护成本高:需要你手动更新列表,以跟上浏览器和操作系统的新版本。
  • 列表可能过时:如果列表不常更新,获取的 UA 可能会被网站识别为旧的或无效的。

完整示例:在 requests 库中使用

最常见的场景是在 requests 请求中设置随机的 User-Agent

import requests
from fake_useragent import UserAgent
# 方法一:使用 fake-useragent
ua = UserAgent()
headers = {
    'User-Agent': ua.random,
    'Accept-Language': 'en-US, en;q=0.9'
}
try:
    # 发送请求
    response = requests.get('https://httpbin.org/user-agent', headers=headers, timeout=10)
    # 检查请求是否成功
    response.raise_for_status() 
    # 打印返回的 User-Agent 信息,验证是否生效
    print("请求成功!")
    print("服务器收到的 User-Agent 信息:")
    print(response.json()) # httpbin.org 会返回你发送的请求头信息
except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")

总结与建议

方法 优点 缺点 适用场景
fake-useragent 简单、功能强大、UA列表更新及时 首次运行需下载外部文件 绝大多数场景,特别是爬虫和自动化测试
手动维护列表 无依赖、完全可控 维护成本高,UA易过时 对 UA 有特殊要求,或无法访问外网的环境
浏览器插件/网站获取 UA真实、最新 需要手动操作,不适合自动化脚本 临时获取单个或少量最新 UA

对于绝大多数 Python 强烈推荐使用 fake-useragent,因为它在易用性和功能性之间取得了最佳平衡。

分享:
扫描分享到社交APP
上一篇
下一篇