一个轻量级的Python库,用于生成真实的HTTP请求头,帮助模拟各种浏览器和操作系统的网络请求。
- 🎭 真实模拟: 支持Chrome、Firefox、Opera等主流浏览器
- 🖥️ 多平台: 支持Windows、macOS、Linux操作系统
- 🎲 随机生成: 智能随机组合生成逼真的请求头
- 🚀 零依赖: 纯Python实现,无外部依赖
- 📦 轻量级: 简单易用的API设计
- 🔄 高度可定制: 支持指定特定浏览器和操作系统
pip install funfakefrom funfake import fake_header
# 生成随机请求头
headers = fake_header()
print(headers)
# 输出示例:
# {
# 'Accept': '*/*',
# 'Connection': 'keep-alive',
# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
# 'Accept-Encoding': 'gzip, deflate, br',
# 'Accept-Language': 'en-US;q=0.5,en;q=0.3',
# 'Referer': 'https://www.google.com'
# }from funfake import Headers
# 指定浏览器和操作系统
chrome_headers = Headers(browser='chrome', os='win', headers=True)
headers = chrome_headers.generate()
# 指定Firefox浏览器,macOS系统
firefox_headers = Headers(browser='firefox', os='mac', headers=True)
headers = firefox_headers.generate()
# 只生成基础请求头(不包含额外头信息)
basic_headers = Headers(browser='chrome', os='linux', headers=False)
headers = basic_headers.generate()生成随机的HTTP请求头。
返回值: dict - 包含HTTP请求头的字典
用于自定义生成HTTP请求头的类。
参数:
-
browser(str, 可选): 浏览器类型'chrome': Chrome浏览器'firefox': Firefox浏览器'opera': Opera浏览器None: 随机选择 (默认)
-
os(str, 可选): 操作系统类型'win': Windows系统'mac': macOS系统'lin': Linux系统None: 随机选择 (默认)
-
headers(bool, 可选): 是否生成额外的HTTP头True: 包含Accept-Encoding、Accept-Language等额外头信息False: 只包含基础头信息 (默认)
方法:
generate(): 生成HTTP请求头字典
- Web爬虫: 避免被网站检测为机器人
- API测试: 模拟真实用户请求
- 负载测试: 生成多样化的请求头
- 浏览器兼容性测试: 测试不同浏览器环境
- 网络请求模拟: 在自动化测试中使用
| 浏览器 | 支持版本数量 | 版本范围 |
|---|---|---|
| Chrome | 87+ | 50.0 - 87.0 |
| Firefox | 138+ | 50.0 - 80.0 |
| Opera | 42+ | 50.0 - 67.0 |
- Windows: Windows NT 6.0-6.3, Windows 10
- macOS: Mac OS X 10.10-10.14
- Linux: 支持x86_64、i686架构
内置532个真实网站域名作为Referer,包括:
- Google、YouTube、Facebook等主流网站
- 各国Wikipedia、新闻媒体网站
- 技术类网站如GitHub、Stack Overflow
- 电商网站如Amazon、eBay
import requests
from funfake import fake_header
url = "https://httpbin.org/headers"
headers = fake_header()
response = requests.get(url, headers=headers)
print(response.json())import requests
from funfake import Headers
class WebScraper:
def __init__(self):
self.session = requests.Session()
self.header_generator = Headers(headers=True)
def get_page(self, url):
# 每次请求使用不同的请求头
headers = self.header_generator.generate()
self.session.headers.update(headers)
return self.session.get(url)欢迎提交Issue和Pull Request!
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。
- 牛哥 - niuliangtao@qq.com
- farfarfun团队 - farfarfun@qq.com