Отказ от ответственности: пока мне удалось захватить данные из другого источника с помощью функции POST httr, пусть будет известно, что я полный n00b в отношении httr и HTML-форм в целом.httr: получение данных с POST()
Я хотел бы привести некоторые данные непосредственно в R с веб-сайта, используя httr. Моя первая попытка заключалась в передаче именованного списка в тело arg (как показано в this vignette). Тем не менее, я заметил квадратные скобки в форме ввода имен (по крайней мере I думаю они являются входными аргументами формы). Поэтому вместо того, я попытался переходящим в теле в виде строки, как я думаю, он должен появиться в теле запроса:
url <- 'http://research.stlouisfed.org/fred2/series/TOTALSA/downloaddata'
query <- paste('form[native_frequency]=Monthly', 'form[units]=lin',
'form[frequency]=Monthly', 'form[obs_start_date]="1976-01-01"',
'form[obs_end_date]="2014-11-01"', 'form[file_format]=txt'
sep = '&')
response <- POST(url, body = query)
В любом случае, приведенный выше код просто возвращает исходный веб-страницы код, и я не могу понять, как правильно отправить форму, чтобы она возвращала те же данные, что и вручную, нажав кнопку «Загрузить данные» формы.
В Инструментах разработчика/Сеть в Chrome он указывает в заголовке ответа на Content-Disposition, что есть вложение текстового файла, содержащее данные, когда я вручную нажимаю кнопку «Загрузить данные» в форме. Кажется, что это ни в одном из заголовков, связанных с объектом ответа в коде выше. Почему этот файл не возвращается по запросу POST - где находится файл с данными?
Чувствуется, что у меня что-то не хватает. Кто-нибудь хочет помочь мне подключить точки?
Спасибо за ваш ответ - я совершенно забыл, что вы можете создать именованные списки с строками как для ключа и значения. К сожалению, это все еще не возвращает данные с разделителями табуляции в текстовом формате, которые вы могли бы получить, нажав кнопку отправки. Я отредактирую свой первоначальный вопрос, чтобы уточнить. – circld
@circld Что вы получаете как ответ? Я вижу данные с разделителями табуляции, возвращаемые как содержимое. Я обновил свой пост, чтобы показать, что я получаю. Как эта другая форма, что вы хотите? – MrFlick
Нет, ты совершенно прав. Имела опечатка в названном списке. Спасибо за вашу помощь! – circld