Python nasdaq.com发布请求不正确

Python nasdaq.com发布请求不正确,python,python-requests,Python,Python Requests,所以我试图从纳斯达克获得10年的历史数据。默认时间段为3个月,当更改为10年并检查页面源时,post请求的数据/有效负载字典为“10y | false | FB” 数据可公开获取,并可作为excel表格下载。 我对post请求的回复仍然是3个月,而不是10年。谁能告诉我这里怎么了?谢谢大家! url = "https://www.nasdaq.com" s = requests.Session() response = s.get(url) Scookies = s.cookies.get_di

所以我试图从纳斯达克获得10年的历史数据。默认时间段为3个月,当更改为10年并检查页面源时,post请求的数据/有效负载字典为“10y | false | FB”

数据可公开获取,并可作为excel表格下载。

我对post请求的回复仍然是3个月,而不是10年。谁能告诉我这里怎么了?谢谢大家!

url = "https://www.nasdaq.com"
s = requests.Session()
response = s.get(url)
Scookies = s.cookies.get_dict()

url = "https://www.nasdaq.com/symbol/FB/historical"

data = {'ddlTimeFrame':'10y',
        'onchange':'false',
         'symbol':'FB'}

data = json.dumps(data)

headers = {'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36',
      'authority':'www.nasdaq.com',
        'method':'POST',
        'path':'/symbol/fb/historical',
        'scheme':'https',
        'accept':'*/*',
        'accept-encoding':'gzip, deflate, br',
        'accept-language':'en-US,en;q=0.9',
        'content-length':'12',
        'referer': url,
        'content-type':'application/json',
        'origin': 'https://www.nasdaq.com',
        'x-requested-with': 'XMLHttpRequest'}

response = s.post(url, headers = headers , data = payload)

我能够检索十年的原始数据。我拍了一些截图。请注意,它是用HTML模板呈现的,所以你需要去掉它,但我想我给了你正确的方向

我的Python示例:

import requests
url=”https://www.nasdaq.com/symbol/fb/historical“

payload=“10y | false | FB”
标题={
“内容类型”:“应用程序/json”,
“缓存控制”:“无缓存”,
}

response=requests.request(“POST”,url,data=payload,headers=headers)


打印(response.text)

您确信您请求的数据应该可用吗?看起来这些数据并没有追溯到那么远。是的,这是Facebook的股价,虽然它在2012年上市,但应该在2012年之前有数据。我尝试将数据更改为“2y | false | FB”,但在过去的2年里它仍然无法使用。数据可能存在,但这并不意味着网站将提供它。你确信你访问的网站和你请求的URL可以追溯到那么远吗?是的,它是nasdaq.com。它允许用户免费下载包含数据的excel表格。我试图避免手动操作。所以如果你手动操作,它会起作用吗?您应该在问题中包含这些信息,并寻求帮助,找出该过程与代码的不同之处。