9

免責事項: httr の POST 関数を使用して別のソースからデータを取得することはできましたが、httr および HTML フォーム全般に関して、私はまったく無知であることを知っておいてください。

httr を使用して Web サイトから R にデータを直接取り込みたいと考えています。私の最初の試みは、名前付きリストを body 引数に渡すことでした (このビネットに示されているように)。ただし、フォームの入力名に角かっこがあることに気付きました (少なくともフォームの入力引数だと思います)。代わりに、リクエスト本文に表示されるはずだと思うので、本文を文字列として渡してみました。

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)

いずれにせよ、上記のコードは Web ページのソース コードを返すだけで、フォームの [データのダウンロード] ボタンを手動でクリックした場合と同じデータを返すようにフォームを適切に送信する方法がわかりません。

Chrome の開発者ツール/ネットワークでは、フォームの [データのダウンロード] ボタンを手動でクリックすると、データを含むテキスト ファイルが添付されていることが Content-Disposition の下の応答ヘッダーに記載されています。上記のコードの応答オブジェクトに関連付けられているヘッダーのいずれにも含まれていないようです。このファイルが POST 要求で返されないのはなぜですか? データを含むファイルはどこにあるのでしょうか?

明らかな何かが欠けているように感じます。点をつなぐのを手伝ってくれる人はいますか?

4

1 に答える 1