2017-06-07 17 views
0

このページのテーブルのデータを削りましたhttp://agmarknet.gov.in/PriceTrends/SA_Month_PriMar.aspx。 「商品」、「州」、「年」、「月」などの複数のオプションを選択するよう求められます。次に、送信ボタンを押してテーブルを取得する必要があります。複数のドロップダウンオプションを使用して.aspx Webページからテーブルを掻き集める

"商品" = "トマト"、 "状態" = "カルナータカ"、 "年" = "2016"、 "月" =すべての月データに関連付けられたテーブルを削ってみます。抽出するために私を助けてください、私はWebページから必要なテーブルをスクラップすることはできませんよ

Submitting with 'ctl00$ddlDistrict' 
Warning message: 
In request_POST(session, url = url, body = request$values, encode = 
request$encode, : 
Internal Server Error (HTTP 500). 

:私はR

url<-"http://agmarknet.gov.in/PriceTrends/SA_Month_PriMar.aspx" 
pgsession <- html_session(url) 
pgform <-html_form(pgsession)[[1]] 
filled_form <-set_values(pgform, 
        "ctl00$cphBody$Commodit_list"= "Tomato", 
        "ctl00$cphBody$State_list" = "Karnataka", 
        "ctl00$cphBody$Yea_list" = "2016", 
        "ctl00$cphBody$Mont_list" = "January"    
) 
d <- submit_form(session=pgsession, form=filled_form) 
y <- d %>% 
html_nodes("table") %>%.[[2]] %>% 
html_table(header=TRUE) 
dim(y) 

に次のコードで働いていますが、私はとエラーメッセージを取得していますページから必要なオプションを含むテーブル。ここで

答えて

0

は、あなたはすべての月

library(RSelenium) 
library(rvest) 
library(tidyverse) 

url <- "http://agmarknet.gov.in/PriceTrends/SA_Month_PriMar.aspx" 

rD <- rsDriver() 

remDr <- rD$client 
remDr$navigate(url) 

Sys.sleep(4) # wait for 4 seconds for the webpage to open 

webElem_commodity <- remDr$findElement(using = "css", "#cphBody_Commodit_list") 
opts_commodity <- webElem_commodity$selectTag() # get all the associated tags 
commodity_num <- which(opts_commodity$text=="Tomato") # find the required option 
opts_commodity$elements[[commodity_num]]$clickElement() # select the required option 

webElem_state <- remDr$findElement(using = "css", "#cphBody_State_list") 
opts_state <- webElem_state$selectTag() 
state_num <- which(opts_state$text=="Karnataka") 
opts_state$elements[[state_num]]$clickElement() 

webElem_yr <- remDr$findElement(using = "css", "#cphBody_Yea_list") 
opts_yr <- webElem_yr$selectTag() 
yr_num <- which(opts_yr$text=="2016") 
opts_yr$elements[[yr_num]]$clickElement() 

webElem_month <- remDr$findElement(using = "css", "#cphBody_Mont_list") 
opts_month <- webElem_month$selectTag() 
month_num <- which(opts_month$text=="January") 
opts_month$elements[[month_num]]$clickElement() 

webElem_submit <- remDr$findElement(using = "css", "#cphBody_But_Submit") 
webElem_submit$clickElement() 

Sys.sleep(5) # wait for 5 seconds for the webpage to open 

page_source <- remDr$getPageSource() 

tdf <- read_html(page_source[[1]]) %>%  # read table 
    html_nodes("table") %>% .[[6]] %>% 
    html_table(header=T,fill=T, trim=T) 
を反復処理するために lapplyを使用することができます1月2016の日付をこすりする RSeleniumパッケージを使用する方法であります
関連する問題