這是forbidding you訪問頁面,因爲您的頭文件中有user-agent
字符串中的NULL
。 (通常是告訴你使用的是什麼瀏覽器,雖然有些瀏覽器允許用戶欺騙其他瀏覽器的字符串)使用httr
包,你可以設置一個user-agent
字符串:
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]])'))
在GET
請求裹,add_headers
讓你設置你喜歡的任何參數。如果您想要設置這一切,您也可以使用更具體的user_agent
函數代替add_headers
。
在這種情況下,任何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