2017-04-24 14 views
2

私はこのsiteから失業率データを抽出しようとしています。フォームには、オプションのあるselectタグがあります。テーブルを2007年のデフォルトから2007年に抽出することができますが、from_yearto_yearの値を設定するのは苦労しています。ここに私がこれまで持っているコードはあります:rvest:オプションを選択してフォームを送信

session = html_session("https://data.bls.gov/timeseries/LNS14000000") 
form = read_html("https://data.bls.gov/timeseries/LNS14000000") %>% html_node("table form") %>% html_form() 
set_values(form, from_year = 2000, to_year = as.numeric(format(Sys.Date(), "%Y"))) # nothing happened if I set the value for years 
submit_form(session, form) 

期待どおりに動作しません。

+0

私はあなたがRSelenium' 'のようなものを使用せずにこれを行うことができないと思います。 例についてはこちらをご覧ください... https://stackoverflow.com/questions/43307090/how-to-select-dropdown-box-using-rselenium/43307980#43307980 しかし、この場合、blsにはAPI、それはおそらく最初の一見の価値があるので... https://www.bls.gov/developers/ –

答えて

2

ありがとうございます@Andrew!

私はAPIを使用してデータを抽出できます。

library(rjson) 
library(blsAPI) 

uer1 <- list(
    'seriesid'=c('LNS14000000'), 
    'startyear'=2000, 
    'endyear'=2009) 

response <- blsAPI(uer1, 2, TRUE) 

response次のようになります。APIのいくつかのクエリは限界がある

year period periodName value seriesID 
1 2009 M12 December 9.9 LNS14000000 
2 2009 M11 November 9.9 LNS14000000 
3 2009 M10 October 10.0 LNS14000000 
4 2009 M09 September 9.8 LNS14000000 
5 2009 M08  August 9.6 LNS14000000 
6 2009 M07  July 9.5 LNS14000000 
... 

注こと。

api limits

+2

尊敬され、掻き取りやプロキシスクレーパーを介して回避されない制限。 – hrbrmstr

+0

@hrbrmstr、全く同感です! –

関連する問題