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

无法使用Python和Golang下载NSE Archives数据

解决NSE受限脚本CSV数据请求失败问题

问题分析

NSE(印度国家证券交易所)的归档服务器带有反爬机制,会验证请求合法性:

  • 未携带User-Agent头的请求会被服务器拦截或重定向,导致Python请求陷入循环
  • Golang默认启用HTTP/2,而该服务器对HTTP/2请求存在兼容性问题,触发http2StreamError

修正后的代码

Python 版本

添加模拟浏览器的User-Agent头,避免被服务器识别为脚本请求:

import requests

url = "https://nsearchives.nseindia.com/content/fo/fo_secban.csv"
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"
}

try:
    response = requests.get(url, headers=headers, allow_redirects=True)
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print(f"请求错误: {e}")
else:
    print(response.text)

Golang 版本

除了添加User-Agent头,还需要强制使用HTTP/1.1协议,规避HTTP/2的兼容性问题:

package main

import (
    "crypto/tls"
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    url := "https://nsearchives.nseindia.com/content/fo/fo_secban.csv"

    // 创建自定义客户端,强制使用HTTP/1.1
    client := &http.Client{
        Transport: &http.Transport{
            TLSNextProto: make(map[string]func(authority string, c *tls.Conn) http.RoundTripper),
        },
    }

    // 构造请求并添加浏览器UA头
    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        fmt.Printf("创建请求失败: %s\n", err)
        return
    }
    req.Header.Add("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")

    response, err := client.Do(req)
    if err != nil {
        fmt.Printf("GET请求失败: %s\n", err)
        return
    }
    defer response.Body.Close()

    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        fmt.Printf("读取响应体失败: %s\n", err)
        return
    }

    fmt.Println(string(body))
}

关键修改说明

  1. User-Agent头:模拟浏览器的请求标识,让服务器认为请求来自合法客户端
  2. Golang强制HTTP/1.1:通过TLSNextProto禁用HTTP/2,避免服务器的HTTP/2流错误
  3. Python允许重定向:默认allow_redirects=True,确保跟随服务器的合法重定向(如果有)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:33:32