如何通过Python获取Web Scraping所需的User-Agent等请求头信息?
如何用Python获取合法的请求头信息
你可以通过两种实用方式获取符合浏览器规范的请求头,解决爬虫返回404的问题:
1. 从浏览器开发者工具手动复制
这是最直接的方法:
- 打开目标网页(比如你要爬的雅虎财经页面)
- 按F12打开开发者工具,切换到「网络」标签页
- 刷新页面,找到第一个文档类型的GET请求(通常是网页本身的请求)
- 查看「请求头」区域,复制需要的字段(比如
User-Agent、Accept等)
2. 用Python库自动生成模拟请求头
如果不想手动复制,可借助第三方库生成符合浏览器特征的请求头:
使用fake_useragent库
这个库能随机生成不同浏览器的User-Agent,避免固定头被识别:
from fake_useragent import UserAgent ua = UserAgent() headers = { "User-Agent": ua.random, "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" }
安装命令:pip install fake_useragent
借助requests会话补充请求头
requests的Session对象可自动生成基础请求头,你再按需补充关键字段:
import requests session = requests.Session() # 先发起一次请求让会话生成基础头 session.get("https://finance.yahoo.com") # 查看会话默认请求头,按需修改 print(session.headers) # 更新或补充核心字段 session.headers.update({ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" }) # 用会话发起目标请求 response = session.get("https://finance.yahoo.com/quote/AUDUSD%3DX/history?p=AUDUSD%3DX") print(response.status_code)
注意:请求头无需照搬浏览器所有字段,核心的User-Agent和Accept通常就能绕过基础反爬;同时不要高频发送请求,避免触发网站IP封禁机制。
内容的提问来源于stack exchange,提问作者ryantl
相关产品推荐
相关产品推荐

