2016-04-23 3 views
0

Ich möchte Web-Scrape vergangenen Daten für Non Farm Payrolls von hier http://www.bls.gov/bls/archived_sched.htm (Archiv) und hier http://www.bls.gov/schedule/news_release/empsit.htm (aktuelle Jahr).Web Scrape Non Farm Payrolls Daten in R

Etwas ähnliches wurde von Peter Chan für FOMC Daten hier erreicht: https://github.com/returnandrisk/r-code/blob/master/FOMC%20Dates%20-%20Scraping%20Data%20From%20Web%20Pages.R. Dies ist sein Code:

install.packages(c("httr", "XML"), repos = "http://cran.us.r-project.org") 

library(httr) 
library(XML) 

# get and parse web page content            
webpage <- content(GET("http://www.federalreserve.gov/monetarypolicy/fomccalendars.htm"), as="text") 
xhtmldoc <- htmlParse(webpage) 
# get statement urls and sort them 
statements <- xpathSApply(xhtmldoc, "//td[@class='statement2']/a", xmlGetAttr, "href") 
statements <- sort(statements) 
# get dates from statement urls 
fomcdates <- sapply(statements, function(x) substr(x, 28, 35)) 
fomcdates <- as.Date(fomcdates, format="%Y%m%d") 
# save results in working directory 
save(list = c("statements", "fomcdates"), file = "fomcdates.RData") 

Ich möchte das für NFP replizieren. Genau wie fomcdates alle FOMC-Daten enthält, möchte ich NFPdates erstellen, die alle NFP-Daten enthalten.

Würde jemand wissen, wie man das nur für das laufende Jahr macht? (fragendes aktuelles Jahr, wie es scheint, das einfachste zu sein). Vielen Dank.

+0

BLS hat eine API und eine [entsprechenden R Paket] (https://cran.r-project.org/web/packages/blsAPI/index.html). Es kann die Daten, die Sie benötigen, in einer weniger brutalen Art und Weise haben. – hrbrmstr

+0

Sehr interessant, vielen Dank! @ feats-by-jake-Antwort immer noch sehr nützlich, da dieser Ansatz auf andere Datenquellen angewendet werden kann. – Krug

Antwort

1

Dies funktioniert für das laufende Jahr.

library(rvest) 

url <- 'http://www.bls.gov/schedule/news_release/empsit.htm' 
ses <- html_session(url) 
tbl <- html_table(ses, fill = T) 
nfpdates <- tbl[[2]]$`Release Date` 
nfpdates <- gsub('\\.', '', nfpdates) 
nfpdates <- as.Date(nfpdates, '%b %d, %Y')