NULL
のヘッダーの文字列にNULL
が含まれているため、forbidding youにアクセスできません。 add_headers
ができますGET
要求に包まれ
library(httr)
library(rvest)
url <- "https://www.opm.gov/policy-data-oversight/data-analysis-documentation/federal-employment-reports/historical-tables/total-government-employment-since-1962/"
x <- GET(url, add_headers('user-agent' = 'Gov employment data scraper ([[your email]])'))
:(。一部のブラウザでは、ユーザーが他のブラウザを偽装しましょうけれども、通常、それはあなたが使用しているもののブラウザ伝える文字列だ、)httr
パッケージを使用して、user-agent
文字列を設定することができます好きなパラメータを設定します。 add_headers
の代わりに、より具体的なuser_agent
関数を使用して設定することもできます。
この場合、いずれもuser-agent
文字列は機能しますが、あなたが誰であり、何を望んでいるかを丁寧(最後のリンクを参照)してください。
rvest
を使用すると、HTMLを解析して表を引き出すことができます。関連するテーブルを選択する方法が必要です。 HTMLを見て、それにはclass = "DataTable"
がありますが、SelectorGadget(rvest
ビネットを参照)を使用して、有効なCSSまたはXPathセレクターを見つけることもできます。したがって
x %>%
read_html() %>%
html_node('.DataTable') %>%
html_table()
は、(完全ではないにしても)きれいなdata.frameを提供します。
注:責任を持って法的に擦り傷をつけてください。 OPMが政府の情報源であることを考えると、それはパブリック・ドメインにありますが、それは多くのウェブでは当てはまりません。 this nice post on how to scrape responsibly.
[https://en.wikipedia.org/wiki/HTTP_403](https://en.wikipedia.org/wiki/HTTP_403)を参照してください。必ずしも道路の終わりではありませんが、確かに障害物です。 – alistaire