使用 Python 请求访问纳斯达克历史数据会导致连接超时



我试图运行这段Python代码(带有请求库(从 NASDAQ.com 中检索特斯拉一年的历史市场数据

dataURL = https://www.nasdaq.com/api/v1/historical/TSLA/stocks/2019-05-22/2020-05-21
quotesReq = requests.get(dataURL, allow_redirects = True)

尽管能够通过 Web 浏览器访问 URL 并下载预期的".csv"文件,但我的 Python 代码会产生超时错误。

requests.exceptions.ConnectionError: ('Connection aborted.', TimeoutError(10060, 'A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond', None, 10060, None))

这是因为 NASDAQ.com 采取了防刮措施,还是我的请求中缺少一些信息?任何帮助解决问题将不胜感激。

尝试添加以下三个标头:

"Accept-Language":"en-US,en;q=0.9"
"Accept-Encoding":"gzip, deflate, br"
"User-Agent":"Java-http-client/"

这是使用Selenium chromedriver的简单解决方案。

import time
from selenium import webdriver
dataURL = 'https://www.nasdaq.com/api/v1/historical/TSLA/stocks/2019-05-22/2020-05-21'
driver = webdriver.Chrome('C:/chromedriver.exe')  
driver.get(dataURL)
time.sleep(5)
driver.quit()

同样,请与提供商联系以获取有关正确抓取的条款。 你可以看看更多的硒铬网驱动程序,https://chromedriver.chromium.org/getting-started

最新更新