Я создал программу, которая может получать ежемесячную информацию об акциях из Yahoo Finance и распечатывать список этой информации. Я знаю, что моя методология получения информации еще не самая лучшая, но часть, на которой я застрял, — это взять информацию об акциях и записать ее в файл csv. То, что у меня есть до сих пор, правит каждого отдельного персонажа в файл csv.
import requests
from urllib2 import urlopen
import csv
import pandas as pd
from pandas import DataFrame
import datetime
import pandas.io.data
YahooUrl = 'http://ichart.yahoo.com/table.csv?s='
start_month = 1 - 1
start_day = 1
start_year = 2010
end_month = 12 - 1
end_day = 31
end_year = 2014
Start_ApiMonth = '&a=%s' %(start_month)
Start_ApiDay = '&b=%s' %(start_day)
Start_ApiYear = '&c=%s' %(start_year)
End_ApiMonth = '&d=%s' %(end_month)
End_ApiDay = '&e=%s' %(end_day)
End_ApiYear = '&f=%s' %(end_year)
interval = 'm'
ApiInterval = '&g=%s' %(interval)
ApiStatic = '&ignore=.csv'
Ticker = raw_input("What is the ticker > ")
Website = urlopen(YahooUrl + Ticker + Start_ApiMonth + Start_ApiDay + Start_ApiYear + End_ApiMonth + End_ApiDay + End_ApiYear + ApiInterval + ApiStatic)
Info = Website.read()
output = open('output.csv','wb')
wr = csv.writer(output, dialect='excel')
for item in Info:
wr.writerow(item)
print Info
urlopen
возвращает объект file;ike.read()
возвращает одну строку — вам нужно будет разобрать эту строку, чтобы разделить ее на соответствующие поля. Вы должны включить примерprint(Info)
- если он не слишком длинный или только его часть (чтобы дать нам представление о структуре) и попытаться разобрать его самостоятельно. - person wwii   schedule 11.08.2015pandas
имеет встроенные инструменты для извлечения данных из Yahoo Finance, см. документация для обзора. Использованиеpandas
API требует гораздо меньше ручной работы с вашей стороны. - person Marius   schedule 11.08.2015