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

如何用Python读取网站HTML内容?爬取纳斯达克表格无结果怎么办

问题根因
  • 纳斯达克官网配置了基础反爬策略,pandas.read_html() 默认发起的请求未携带浏览器标识等请求头,会被服务器直接拒绝,返回的响应内容不包含任何可解析的表格结构
  • 该页面的指数成分股表格属于动态渲染内容,首次请求返回的静态HTML源码中没有完整的表格数据,仅通过静态HTML解析无法获取目标内容
  • 原代码存在冗余导入问题,重复导入了两次requests库,虽不影响运行但属于不规范写法
修复方案

建议先构造合法请求头,调用纳斯达克官方公开的行情接口获取结构化数据,参考代码如下:

import pandas as pd
import requests

def main():
    URL = 'https://api.nasdaq.com/api/quote/list-type/nasdaq100'
    # 构造模拟浏览器的请求头,绕过基础反爬
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
        'Accept': 'application/json, text/plain, */*'
    }
    resp = requests.get(URL, headers=headers)
    # 解析返回的JSON数据,提取成分股表格内容
    data = resp.json()['data']['data']['rows']
    df = pd.DataFrame(data)
    print(df)

if __name__ == "__main__":
    main()
  • 上述代码直接调用页面后端用来加载表格数据的接口,返回的JSON格式数据无需解析HTML,处理效率更高
  • 接口返回的字段包含股票代码、公司名称、最新价、涨跌幅等全部表格展示字段,可直接按需筛选使用
  • 请求头中的User-Agent可根据自己的浏览器版本替换,避免被集中拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:45:01