You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何用requests模拟Firefox且不打开浏览器获取网站数据

模拟Firefox环境无浏览器获取网站数据

用requests库模拟Firefox请求

不需要打开浏览器,只需要在requests请求中设置Firefox风格的请求头即可——网站识别客户端类型主要靠请求头里的User-Agent字段,部分严格的网站还会校验其他头信息(比如Accept、Accept-Language),模拟完整的Firefox请求环境就能绕过基础校验。

具体操作:

  1. 获取Firefox的真实请求头:打开Firefox按F12进入开发者工具,切换到「网络」面板,刷新页面后随便点一个请求,在「请求头」里复制User-Agent、Accept等字段的真实值(不同系统、Firefox版本的字段值会有差异,直接复制自己浏览器的最准确)。
  2. 构造请求头字典:把复制的字段整理成字典格式。
  3. 发起请求:用requests的get/post方法,通过headers参数传入这个字典。

代码示例:

import requests

# 替换成你自己Firefox的请求头字段
firefox_headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:115.0) Gecko/20100101 Firefox/115.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1'
}

target_url = "你的目标网站地址"
resp = requests.get(target_url, headers=firefox_headers)

if resp.status_code == 200:
    print(resp.text)  # 打印网页内容
else:
    print(f"请求失败,状态码: {resp.status_code}")

处理动态渲染的网站

如果目标网站的数据是通过JavaScript动态加载的,requests只能拿到静态HTML,这时候可以用Selenium配合Firefox无头模式——既模拟Firefox环境,又不会弹出浏览器窗口。

代码示例:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

# 配置Firefox无头模式
firefox_options = Options()
firefox_options.add_argument("--headless")  # 不显示浏览器窗口
firefox_options.add_argument("--disable-gpu")  # 避免部分环境下的GPU报错

# 初始化驱动(需要提前下载geckodriver,版本要和你的Firefox匹配,可指定路径如executable_path="/path/to/geckodriver")
driver = webdriver.Firefox(options=firefox_options)

driver.get("你的目标网站地址")
page_html = driver.page_source  # 获取JS渲染后的完整页面
print(page_html)

driver.quit()  # 关闭驱动

注意:使用Selenium需要安装selenium库(执行pip install selenium),并下载对应版本的geckodriver,确保其路径能被Python找到。

内容的提问来源于stack exchange,提问作者Revavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:15:10