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

如何用Python爬取Barchart平台盘前交易数据表格?

解决Barchart盘前交易数据爬取403错误的方法

403错误通常是服务器识别出请求并非来自正常浏览器,可通过以下方式解决:

  • 模拟浏览器请求头:给请求添加浏览器标识及相关头信息,让服务器认为请求来自合法客户端。至少要包含User-Agent,还可补充Accept、Accept-Language等字段。
  • 用Session统一管理请求头:在Session中设置默认请求头,确保后续所有请求都携带这些标识。
  • 优先请求AJAX接口:页面表格数据多通过AJAX异步加载,可通过浏览器开发者工具抓包找到真实数据接口,直接请求接口能更高效获取结构化数据。

修改后的代码示例:

import requests

# 模拟浏览器的请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Referer': 'https://www.barchart.com/'
}

target_url = 'https://www.barchart.com/stocks/pre-market-trading/volume-advances?orderBy=preMarketVolume&orderDir=desc'

# 初始化Session并设置默认请求头
session = requests.Session()
session.headers.update(headers)

response = session.get(target_url)
print(f"请求状态码: {response.status_code}")

# 若需解析页面数据,可引入BeautifulSoup
# from bs4 import BeautifulSoup
# soup = BeautifulSoup(response.text, 'html.parser')
# 后续提取表格数据逻辑

额外提示:

  • 若仍返回403,可先访问Barchart首页获取Cookie,再请求目标页面;
  • 控制请求频率,避免短时间内多次请求导致IP被封禁,必要时添加time.sleep()延时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:05:28