2017-07-01 64 views
-1

我有以下谷歌金融股票指数(NSE:NIFTY50)的数据here。我想下载上面的数据为csv,以便我可以对它做一些分析。我如何下载它?如果可以的话,我宁愿使用python。下载历史股指数据

+1

我很惊讶你代表一个用户不知道如何在这里提出一个正确的,完整的问题。你有什么尝试? (我没有downvote) –

回答

1

您应该能够使用下面的代码下载股票数据。

import requests 
from bs4 import BeautifulSoup 
import pandas as pd 

url = "https://www.google.com/finance/historical?cid=207437&startdate=Jan%201%2C%201971&enddate=Jul%201%2C%202017&start={0}&num=30" 
#change this to 138 
how_many_pages=3 
start=0 

for i in range(how_many_pages): 
    new_url = url.format(start) 
    page = requests.get(new_url) 
    soup = BeautifulSoup(page.content, "html5lib") 
    table = soup.find_all('table', class_='gf-table historical_price')[0] 

    columns_header = [th.getText() for th in table.findAll('tr')[0].findAll('th')] 
    data_rows=table.findAll('tr')[1:] 
    data=[[td.getText() for td in data_rows[i].findAll(['td'])] for i in range(len(data_rows))] 

    if (start == 0): 
     final_df = pd.DataFrame(data, columns=columns_header) 
    else: 
     df=pd.DataFrame(data, columns=columns_header) 
     final_df = pd.concat([final_df, df],axis=0) 
    start += 30 
#write your code to save final_df to csv 

请不要忘记标记为答案,如果它有助于:)

+0

如果我增加页数到4110我得到'文件nse_data.py“,第14行,在 table = soup.find_all('table',class _ ='gf-table historical_price ')[0] IndexError:列表索引超出范围' – liv2hak

+0

更改为138(= 4110/30 +1) – Prem