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

如何修正Python代码以下载纳斯达克股票筛选器CSV文件

问题分析与代码修正指引

一、用Chrome开发者工具定位CSV下载接口的步骤

  • 打开目标页面后按F12启动开发者工具,切换到Network标签
  • 勾选Preserve log选项,然后点击页面的Download CSV按钮
  • 在Network请求列表里筛选类型为csv的请求,查看它的Request URL,这就是直接下载的接口地址

二、原代码的核心问题

  • 你用BeautifulSoup查找的class是页面body的类,和下载链接完全无关,根本找不到有效地址
  • 纳斯达克的CSV下载是通过动态API接口实现的,直接爬页面HTML拿不到下载链接

三、修正后的可运行代码

import requests

# 纳斯达克股票筛选器的直接CSV下载API接口
csv_url = "https://api.nasdaq.com/api/screener/stocks?tableonly=true&limit=25&offset=0&download=true"
csv_file_name = "/Users/document/tickers_nasdaq.csv"

# 模拟浏览器请求头,避免被网站拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Accept": "text/csv"
}

response = requests.get(csv_url, headers=headers)
if response.status_code == 200:
    with open(csv_file_name, 'wb') as file:
        file.write(response.content)
    print("CSV文件下载完成")
else:
    print(f"请求失败,状态码:{response.status_code}")

四、关键说明

  • 直接调用API比解析页面更稳定,因为下载按钮本质是触发这个API请求
  • 必须携带User-Agent请求头,否则网站会返回403禁止访问
  • 当参数download=true时,接口会忽略limit和offset,直接返回完整的纳斯达克股票列表

内容的提问来源于stack exchange,提问作者dam's

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:12:15