Импортировать данные из 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.

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

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

Я надеялся, что Wolfram Alpha может сделать такую ​​вещь легкой, но у меня не было никакого успеха.

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]

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам