Requests模块设置Header的User-Agent

本文介绍了如何在Python爬虫中使用User-Agent,包括其在反爬机制中的作用,如何从浏览器开发者工具获取真实UA,列举了常见的PC和移动端User-Agent示例,并推荐了fake-useragent模块进行随机选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

何时用到 User-Agent

在使用 Python 的 Requests (等类似模块) 模拟浏览器向服务器发送 Http 请求时,通常需要设置 Request Header ,而其中较为关键的一项就是 User-Agent ,由于某些网站会设置对 User_Agent 反爬虫机制,因此我们发送 Http 请求时必要的加上 User-Agent 来标明访问者的信息。

从哪里能找到 User-Agent

  • 打开浏览器的开发者选项
  • 选择 Network
  • 打开一个请求文件
  • Headers 里可以看到 Request Headersuser-agent

在这里插入图片描述

常见的 User-Agent 有哪些

# pc端的user-agent
user_agent_pc = [
    # 谷歌
    'Mozilla/5.0.html (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.html.2171.71 Safari/537.36',
    'Mozilla/5.0.html (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.html.1271.64 Safari/537.11',
    'Mozilla/5.0.html (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.html.648.133 Safari/534.16',
    # 火狐
    'Mozilla/5.0.html (Windows NT 6.1; WOW64; rv:34.0.html) Gecko/20100101 Firefox/34.0.html',
    'Mozilla/5.0.html (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10',
    # opera
    'Mozilla/5.0.html (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.html.2171.95 Safari/537.36 OPR/26.0.html.1656.60',
    # qq浏览器
    'Mozilla/5.0.html (compatible; MSIE 9.0.html; Windows NT 6.1; WOW64; Trident/5.0.html; SLCC2; .NET CLR 2.0.html.50727; .NET CLR 3.5.30729; .NET CLR 3.0.html.30729; Media Center PC 6.0.html; .NET4.0C; .NET4.0E; QQBrowser/7.0.html.3698.400)',
    # 搜狗浏览器
    'Mozilla/5.0.html (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.html.963.84 Safari/535.11 SE 2.X MetaSr 1.0.html',
    # 360浏览器
    'Mozilla/5.0.html (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.html.1599.101 Safari/537.36',
    'Mozilla/5.0.html (Windows NT 6.1; WOW64; Trident/7.0.html; rv:11.0.html) like Gecko',
    # uc浏览器
    'Mozilla/5.0.html (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.html.2125.122 UBrowser/4.0.html.3214.0.html Safari/537.36',
]
# 移动端的user-agent
user_agent_phone = [
    # IPhone
    'Mozilla/5.0.html (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.html.2 Mobile/8J2 Safari/6533.18.5',
    # IPAD
    'Mozilla/5.0.html (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.html.2 Mobile/8C148 Safari/6533.18.5',
    'Mozilla/5.0.html (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.html.2 Mobile/8J2 Safari/6533.18.5',
    # Android
    'Mozilla/5.0.html (Linux; U; Android 2.2.1; zh-cn; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0.html Mobile Safari/533.1',
    'Mozilla/5.0.html (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0.html Mobile Safari/533.1',
    # QQ浏览器 Android版本
    'MQQBrowser/26 Mozilla/5.0.html (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0.html Mobile Safari/533.1',
    # Android Opera Mobile
    'Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10',
    # Android Pad Moto Xoom
    'Mozilla/5.0.html (Linux; U; Android 3.0.html; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0.html Safari/534.13',
]

可以使用如下方法随机选择一个

random.choice(user_agent_pc)

随机选取一个使用。

fake-useragent 模块

fake-useragent 就是一个随机生成 user-agent 的 Python 模块,其基本使用如下

import fake_useragent
# 实例化 user-agent 对象
ua = fake_useragent.UserAgent()
print(ua.random) 

参考

[1]. 认识User-Agent
https://blog.youkuaiyun.com/weixin_30413739/article/details/99998094
[2]. Python——爬虫【Requests设置请求头Headers】
https://blog.youkuaiyun.com/ysblogs/article/details/88530124
[3]. python爬虫——Request对象之Header伪装策略
https://blog.youkuaiyun.com/weixin_38950569/article/details/105231122
[4]. fake-useragent(github)
https://github.com/hellysmile/fake-useragent

.
.
.
.
.
.


桃花仙人种桃树,又摘桃花换酒钱_

### 自定义 HTTP 请求中的 User-Agent 头信息 #### 使用 Python 的 `requests` 库设置 User-Agent Python 中可以利用 `requests` 库轻松地向 HTTP 请求添加自定义的 User-Agent 字段。 ```python import requests url = 'https://httpbin.org/user-agent' headers = { 'User-Agent': 'MyCustomUserAgent/1.0' } response = requests.get(url, headers=headers) print(response.json()) ``` 此代码片段展示了如何创建带有特定 User-Agent 的 GET 请求并打印响应结果[^1]。 #### 利用 PHP 设置 AJAX 请求中的 User-Agent 对于基于 jQuery 发起的 AJAX 调用,可以通过 XMLHttpRequest 对象的方法 setRequestHeader 来更改 User-Agent: ```javascript $.ajax({ url: "test.html", beforeSend: function(xhr){ xhr.setRequestHeader('User-Agent', 'MyCustomUserAgent/1.0'); }, success: function(data){ console.log(data); } }); ``` 上述 JavaScript 代码实现了在发起 AJAX 请求前修改其 User-Agent 属性的功能[^2]。 #### Java HttpClient 设置 User-Agent 实现浏览器仿真 Java 开发人员可借助 Apache HttpClient 类库实现对 User-Agent 的定制化配置。 ```java import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; public class Main { public static void main(String[] args) throws Exception { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpGet request = new HttpGet("https://httpbin.org/get"); request.setHeader("User-Agent", "MyCustomUserAgent/1.0"); HttpResponse response = httpClient.execute(request); System.out.println(response.getStatusLine().getStatusCode()); } } } ``` 这段程序说明了怎样运用 Java 编写客户端应用程序以指定不同的 User-Agent 进行网络请求[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值