Импорт данных из URL

Федеральный Резервный банк Сент-Луиса имеет большой набор данных, доступных на различных своих веб-страницах, таких как:

http://research.stlouisfed.org/fred2/series/OILPRICE/downloaddata?cid=32217 http://www.federalreserve.gov/releases/h10/summary/default.htm http://research.stlouisfed.org/fred2/series/DGS20

наборы данных обновляются, некоторые так часто, как ежедневно. Я склонен интересоваться ежедневными данными (см. вышеуказанные настройки по URL)

Я хотел бы импортировать эти виды ценовых или скоростных потоков данных (доступных в виде файлов CSV или Excel по указанным выше URL-адресам) непосредственно в Mathematica.

Я просмотрел документацию по импорту [], но я нахожу скудную документацию (на самом деле нет) о том, как сделать что-то подобное.

похоже, мне нужно перейти на страницы, отправить некоторые данные для выбора определенных файлов и форматов, запустить загрузку, а затем получить доступ к скачал данные с собственной машины. Еще лучше, если бы я мог получить доступ к информации непосредственно с сайтов.

FinancialData[] казалось бы естественным для такого рода вещи, но я все равно не вижу как это сделать. Финансовые данные имеют множество функций, но я не вижу способа получить такие вещи.

есть ли у кого-нибудь опыт работы с этим или кто-нибудь может указать мне справа направление?

4 ответов


вы можете Import непосредственно из URL-адреса. Например, данные из federalreserve.gov можно получить и визуализировать следующим образом.

url = "http://www.federalreserve.gov/datadownload/Output.aspx?";
url = url<>"rel=H10&series=a660e724c705cea4b7bd1d1b85789862&lastObs=&";
url = url<>"from=&to=&filetype=csv&label=include&layout=seriescolumn";
data = Import[url, "CSV"];
DateListPlot[data[[7 ;;]], Joined -> True]

Я порвал url для удобства, так как это так долго. Я должен был изучить содержимое data прежде чем я точно знал, как его построить-шаг, который обычно необходим. Я уверен, что данные из stlouisfed.org можно получить аналогичным образом, но для этого требуется использование API с ключом для доступа к нему.


Как сказал Марк, вы можете получить данные непосредственно из URL-адреса. Ваши данные нефти могут быть импортированы из другого URL, чем у вас было:

http://research.stlouisfed.org/fred2/data/OILPRICE.txt

С этим URL-адресом вы можете сделать следующее:

oil = Import["http://research.stlouisfed.org/fred2/data/OILPRICE.txt",
"Table", "HeaderLines" -> 12, "DateStringFormat" -> {"Year", "Month", "Day"}];
DateListPlot[oil, Joined -> True, PlotRange -> All]

обратите внимание, что"заголовки" ->12 опция удаляет текст заголовка в первых 12 строках (вы должны подсчитать строки заголовка, чтобы знать, сколько удалить). Я также указал дату формат.

чтобы найти этот URL, сделайте так же, как и раньше, но нажмите на ряд данных, а затем выберите "Просмотр данных" в меню слева, когда вы видите диаграмму.


в документации есть короткий пример извлечения данных из веб-страницы:

http://reference.wolfram.com/mathematica/howto/CleanUpDataImportedFromAWebsite.html

конечно, то, что на самом деле нужно сделать, будет значительно отличаться от страницы к странице.


обсуждение того, как это сделать с помощью ключа API здесь:

http://library.wolfram.com/infocenter/MathSource/7583/

функция основана на документации API. Я не смотрел на код в течение нескольких лет, и по памяти я собрал его довольно быстро, но я использовал его регулярно более 2 лет без проблем. Вот пример ежемесячных не сезонно скорректированных розничных продаж с начала 1992 года по теперь:

enter image description here

wolfram alpha также использует данные FRED, поэтому вы можете использовать их в качестве альтернативы прямому импорту, но сложнее получить правильный запрос. Я предпочитаю использовать Фреда напрямую. Также из памяти данные доступны только на alpha на следующий день после выпуска, что обычно не требуется.

enter image description here