我正在尝试使用pandasb从Yahoo Finance下载数据,但没有任何反应?

时间:2016-08-27 16:10:18

标签: python pandas yahoo-finance

import pandas_datareader.data as web
import datetime
start = datetime.datetime(2010, 1, 1)

end = datetime.datetime(2013, 1, 27)

f = web.DataReader("ugaz", 'yahoo', start, end)

f.ix['2010-01-04']

以上是我目前正试图从雅虎财经获取数据的代码。当我运行代码时,我在python shell 3.5.2窗口中得到它

==================== RESTART: C:/Users/Zac/Desktop/ll.py ====================

这就是我得到的一切。我在Windows 10上使用python 3.5

2 个答案:

答案 0 :(得分:0)

第一个数据点是

f.ix['2012-02-08']

Open           48.360002
High           48.360002
Low            48.360002
Close          48.360002
Volume          0.000000
Adj Close    6045.000287
Name: 2012-02-08 00:00:00, dtype: float64

答案 1 :(得分:0)

有很多方法可以从网上下载财务数据或任何类型的数据。下面的脚本下载股票价格并将所有内容保存到CSV文件。

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('C:/Users/your_path/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()

下面的脚本会将多个股票代码下载到一个文件夹中。

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/your_path/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()

最后......这将下载多个股票代码的价格......

import urllib
import re

symbolfile = open("C:/Users/your_path/Desktop/symbols/amex.txt")
symbollist = symbolfile.read()

newsymbolslist = symbollist.split("\n")

i=0
while i<len(newsymbolslist):
    url = "http://finance.yahoo.com/q?s=" + newsymbolslist[i] + "&ql=1"
    htmlfile = urllib.urlopen(url)
    htmltext = htmlfile.read()
    regex = '<span id="yfs_l84_' + newsymbolslist[i] + '">(.+?)</span>'
    pattern = re.compile(regex)
    price = re.findall(pattern,htmltext)
    print "the price of ", newsymbolslist[i] , "is", price[0]
    i+=1

# Make sure you place the 'amex.txt' file in 'C:\Python27\'
我写了一本关于这些事情的书,以及很多其他的东西。您可以使用以下网址找到它。

https://www.amazon.com/Automating-Business-Processes-Reducing-Increasing-ebook/dp/B01DJJKVZC/ref=sr_1_1