杰瑞科技汇

Python如何模拟UserAgent?

在 Python 中模拟 User-Agent(用户代理字符串)可以通过多种方式实现,以下是几种常见的方法,包括使用标准库、第三方库以及手动设置 User-Agent。

Python如何模拟UserAgent?-图1
(图片来源网络,侵删)

方法 1:使用 requests 库手动设置 User-Agent

requests 是 Python 中最常用的 HTTP 请求库,可以直接在请求头中设置 User-Agent

import requests
url = "https://httpbin.org/user-agent"  # 测试 URL,返回请求的 User-Agent
# 手动设置 User-Agent
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
response = requests.get(url, headers=headers)
print(response.json())  # 输出服务器收到的 User-Agent

输出示例:

{
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}

方法 2:使用 fake-useragent 库生成随机 User-Agent

fake-useragent 是一个第三方库,可以生成随机的、合法的 User-Agent 字符串。

安装

pip install fake-useragent

使用示例

from fake_useragent import UserAgent
import requests
ua = UserAgent()
url = "https://httpbin.org/user-agent"
# 随机生成一个 User-Agent
headers = {"User-Agent": ua.random}
response = requests.get(url, headers=headers)
print(response.json())

输出示例(每次运行可能不同):

Python如何模拟UserAgent?-图2
(图片来源网络,侵删)
{
  "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
}

指定浏览器类型

ua = UserAgent()
chrome_ua = ua.chrome  # Chrome 的 User-Agent
firefox_ua = ua.firefox  # Firefox 的 User-Agent
print(chrome_ua)

方法 3:使用 mechanizeselenium 模拟浏览器行为

如果需要更高级的浏览器模拟(如 JavaScript 渲染),可以使用 seleniummechanize

使用 selenium 模拟浏览器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 设置 Chrome 无头模式
options = Options()
options.add_argument("--headless")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
driver = webdriver.Chrome(options=options)
driver.get("https://httpbin.org/user-agent")
print(driver.find_element("tag name", "body").text)
driver.quit()

方法 4:手动维护 User-Agent 列表

如果不想依赖第三方库,可以手动维护一个 User-Agent 列表,并随机选择。

import random
import requests
user_agents = [
    "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 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0",
]
url = "https://httpbin.org/user-agent"
headers = {"User-Agent": random.choice(user_agents)}
response = requests.get(url, headers=headers)
print(response.json())

方法 适用场景 优点 缺点
requests 手动设置 简单 HTTP 请求 简单直接 需要手动维护 User-Agent
fake-useragent 随机生成 User-Agent 自动生成合法 UA 需要安装第三方库
selenium 模拟浏览器行为 支持 JS 渲染 较重,适合自动化测试
手动维护列表 精确控制 UA 完全可控 需要自己维护列表

推荐:

  • 如果只是简单的 HTTP 请求,使用 requests + fake-useragent 是最方便的。
  • 如果需要模拟完整浏览器行为(如爬取动态网页),使用 selenium

希望这能帮到你!如果有其他需求,欢迎继续提问。

Python如何模拟UserAgent?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇