Python 从yahoo finance下载股价数据的脚本,随机404s

Python 从yahoo finance下载股价数据的脚本,随机404s,python,csv,download,http-status-code-404,yahoo-finance,Python,Csv,Download,Http Status Code 404,Yahoo Finance,以下脚本读取公司股票代码的.txt,以下载.csv格式的相应财务信息。数据从Yahoo Finance中提取并保存在本地目录中 导入urllib.request 导入请求 导入时间 定义要从中下载.csv的URL。 url_begin=http://real-chart.finance.yahoo.com/table.csv?s= url\u end=&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv 从ticker_daten.txt读取所有可用

以下脚本读取公司股票代码的.txt,以下载.csv格式的相应财务信息。数据从Yahoo Finance中提取并保存在本地目录中

导入urllib.request 导入请求 导入时间 定义要从中下载.csv的URL。 url_begin=http://real-chart.finance.yahoo.com/table.csv?s= url\u end=&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv 从ticker_daten.txt读取所有可用的股票代码的函数。此文件应与程序位于同一目录中。 def ReadTickerFile: read_ticker=[] ins=打开文件,r 对于行输入ins: 如果行.endswith“\n”: 行=行[:-1] 阅读股票代码 ins.close 返回读码器 要下载的TickerSymbol的文件位置 tickers=readTickersC:/Users/Win7ADM/Desktop/Jonas/stock price leecher/ticker\u daten.txt 循环浏览股票代码列表并下载.csv。 对于股票中的i: 伪造可下载链接。 link\u created=url\u begin+i+url\u end 确保链接实际指向一个文件。 尝试: r=已创建的requests.headlink\u 如果r.status_code==404: printstrr.status_code+:未找到任何页面! 时间是0.5 其他: printlink_已创建 最后下载文件(如果确实存在)。 urllib.request.urlretrievelink_已创建,C:/Users/Win7ADM/Desktop/Jonas/stock price leecher/data/+i+.csv 时间是0.5 除请求外。ConnectionError: 发生连接错误。 打印连接错误:404找不到页面! 除了requests.HTTPError: 发生HTTP错误。 打印HTTPError! 请求除外。超时: 连接超时。 打印超时! 问题是:在20-1750.csv之间加载后,脚本会随机崩溃。崩溃产生以下输出

Process started >>>
http://real-chart.finance.yahoo.com/table.csv?s=0055.HK&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv
http://real-chart.finance.yahoo.com/table.csv?s=0056.HK&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv
http://real-chart.finance.yahoo.com/table.csv?s=0057.HK&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv
http://real-chart.finance.yahoo.com/table.csv?s=0058.HK&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv
Traceback (most recent call last):
  File "Stock-Price Leecher.py", line 40, in <module>
    urllib.request.urlretrieve(link_created, "C:/Users/Win7ADM/Desktop/Jonas/stock-price-leecher/data/"+i+".csv")
  File "c:\Python34\lib\urllib\request.py", line 178, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "c:\Python34\lib\urllib\request.py", line 153, in urlopen
    return opener.open(url, data, timeout)
  File "c:\Python34\lib\urllib\request.py", line 461, in open
    response = meth(req, response)
  File "c:\Python34\lib\urllib\request.py", line 571, in http_response
    'http', request, response, code, msg, hdrs)
  File "c:\Python34\lib\urllib\request.py", line 499, in error
    return self._call_chain(*args)
  File "c:\Python34\lib\urllib\request.py", line 433, in _call_chain
    result = func(*args)
  File "c:\Python34\lib\urllib\request.py", line 579, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
<<< Process finished. (Exit code 1)
================ READY ================

你们有谁知道为什么会发生这种情况吗

也许你正在使用的服务是以这样一种奇怪的方式限制费率的?嗨,joozek,谢谢你的回复。我也想到了这一点,尽管我没有确切的消息来源,但我相信我已经读到雅虎财经允许每小时超过2000次查询。另一件超出我理解的事情是输出状态为404错误。我的脚本能够捕捉到这些。