簡體   English   中英

使用python從Yahoo Finance上的csv中抓取所選列

[英]Scraping selected columns from csv on Yahoo Finance using python

我正在嘗試從Yahoo Finance數據中抓取選定的列。 我能夠以csv格式抓取整個數據,但是我很好奇知道如何只抓取選定的列而不是整個csv數據。 我嘗試了split方法,將字符串數據轉換為列表,然后僅從列表中訪問所需的列,但這種方法行不通。

import urllib2

listOfStocks = ["AAPL", "MSFT", "GOOG", "FB", "AMZN"]

urls = []

for company in listOfStocks:
    urls.append('http://real-chart.finance.yahoo.com/table.csv?s=' + company + '&d=6&e=28&f=2015&g=m&a=11&b=12&c=1980&ignore=.csv')

Output_File = open('../Files_Directory/Yahoo_Finance/Historical_Prices.csv','w')

New_Format_Data = ''

for counter in range(0, len(urls)):

    Original_Data = urllib2.urlopen(urls[counter]).read()

    if counter == 0:
        New_Format_Data = "Company," + urllib2.urlopen(urls[counter]).readline()

    rows = Original_Data.splitlines(1)

    for row in range(1, len(rows)):

        New_Format_Data = New_Format_Data + listOfStocks[counter] + ',' + rows[row]

Output_File.write(New_Format_Data)
Output_File.close()

僅使用現有Yahoo Finance python模塊之一,例如“ yahoo_finance ”,可能會使您的生活更輕松

使用此模塊僅寫出卷數據(未經測試)

import yahoo_finance as yf
import csv

listOfStocks = ["AAPL", "MSFT", "GOOG", "FB", "AMZN"]

with open('my_output') as csvfile:
    Output_file = csv.writer(csvfile)

    for stock in listOfStocks:
        s = yf.Share(stock)
        hist = s.get_historical('2015-01-01', '2015-10-30')

        for row in hist:
            Output_file.writerow([stock, row['Date'], row['Volume'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM