2016-05-21 8 views
0

Weiß jemand wie man Yahoo Finance csv direkt in Python bekommen?Wie bekomme ich die Yahoo Finance csv direkt in Python

Das Problem ist, dass wenn ich versuche, die Daten mit diesem (Beispiel) Link zu erhalten:

http://real-chart.finance.yahoo.com/table.csv?s=WU&a=4&b=20&c=2015&d=05&e=21&f=2016&g=d&ignore=.csv' 

Es gibt ein Pop-up gefragt, ob ich die csv-Datei herunterladen möchten. Dies führt zu einem Bugg, wenn ich versuche, es in Python einzulesen. Meine Scripts ist:

today = datetime.date.today() 

def get_url(stock='GOOG', START_date = str(int(str(today).split('-')[0])-1)+ 
      '-' +str(int(str(today).split('-')[1])-1) + ('-') + 
      str(int(str(today).split('-')[2])-1), END_date= str(today)): 
    baseurl = 'http://real-chart.finance.yahoo.com/table.csv?' 
    stock = 's=WU' 

    FROM_date = ('&a=' + START_date.split('-')[1] + '&b=' + 
    START_date.split('-')[2] + '&c=' + 
    START_date.split('-')[0]) 

    TO_date = ('&d=' + END_date.split('-')[1] + '&e=' + 
    END_date.split('-')[2] + '&f=' + END_date.split('-')[0]) 

    url = baseurl + stock + FROM_date + TO_date + '&g=d&ignore=.csv' 
    return url 

rawdate = [] 
with open(get_url()) as csvfile: 
    reader = csv.reader(csvfile, delimiter = ",") 
    for row in reader: 
     rawdata.append(row) 

Wenn ich die csv herunterladen erstes kann ich es in Python lesen, aber es will direkt die CSV-Datei erhalten zuzugreifen, ohne dass es zuerst zum Download bereit. Ist das möglich? alternativ kann der csv als temp.

Danke!

Antwort

2

Ich würde empfehlen, dass Sie Pandas verwenden. Hier ist ein link.

import pandas.io.data as web 
import datetime 
start = datetime.datetime(2010, 1, 1) 
end = datetime.datetime(2013, 1, 27) 
f = web.DataReader("F", 'yahoo', start, end) 
f.ix['2010-01-04'] 

Out [6]: öffnen 1.017000e + 01

Hoch 1.028000e + 01

Low 1.005000e + 01

Schließen 1.028000e + 01

Volume 6.085580e + 07

Adj Schließen 8.755953e + 00 Name: 2010-01-04 00:00:00, dtype: float64

+0

aber nur aus Neugierde gibt es eine Möglichkeit, das "Öffnen/Speichern/Schließen" -Fenster zu umgehen, das auftaucht? – Ptru

0

Versuchen Sie es so.

in this file "C:/Users/your_path/Desktop/symbols/tickers.txt" 
you have the following tickers 
ibm 
sbux 
msft 
""" 

import urllib 
import re 
import json 

symbolslist = open("C:/Users/rshuell001/Desktop/symbols/tickers.txt").read() 
symbolslist = symbolslist.split("\n") 

for symbol in symbolslist: 
    myfile = open("C:/Users/rshuell001/Desktop/symbols/" +symbol +".txt", "w+") 
    myfile.close() 

    htmltext = urllib.urlopen("http://www.bloomberg.com/markets/chart/data/1D/"+ symbol+ ":US") 
    data = json.load(htmltext) 
    datapoints = data["data_values"] 

    myfile = open("C:/Users/rshuell001/Desktop/symbols/" +symbol +".txt", "a") 
    for point in datapoints: 
     myfile.write(str(symbol+","+str(point[0])+","+str(point[1])+"\n")) 
    myfile.close() 

Das sollte Ihnen geben, was Sie wollen.

Verwandte Themen