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

如何使用Python爬取CBOE网站表格内的txt文件并本地保存

实现方法

你已经完成了列表页解析和目标a标签定位,后续按以下操作即可完成文件下载保存:

  • 从a标签对象中提取href属性的相对路径,和列表页基础地址拼接为完整的文件下载URL,不要手动硬编码拼接路径,用标准库方法适配路径格式避免出错
  • 携带合法请求头访问下载URL,获取文本文件内容,建议加请求状态校验,请求失败直接抛出异常方便排查
  • 以文本写入模式打开本地文件,将获取到的文件内容写入即可,文件名直接取a标签的文本内容,和站点显示的文件名保持一致

完整可运行代码

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

BASE_URL = "https://www.cboe.com/us/equities/market_statistics/corporate_action/"
# 模拟浏览器请求头,避免被站点反爬策略拦截
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}

# 拉取企业行动列表页
resp = requests.get(BASE_URL, headers=HEADERS)
resp.raise_for_status()
soup = BeautifulSoup(resp.content, "html5lib")

# 定位目标a标签
table = soup.find("table")
target_link_tag = table.tbody.find("tr").find("td").find("a")

# 拼接完整下载地址
relative_path = target_link_tag.get("href")
download_url = urljoin(BASE_URL, relative_path)
save_file_name = target_link_tag.text.strip()

# 拉取目标文本文件
file_resp = requests.get(download_url, headers=HEADERS)
file_resp.raise_for_status()

# 写入本地文件
with open(save_file_name, "w", encoding="utf-8") as f:
    f.write(file_resp.text)

print(f"文件已成功保存,路径:{save_file_name}")

注意:如果写入时遇到乱码问题,可以将open方法的encoding参数替换为file_resp.encoding,自动适配站点返回的文件编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:18:26