2016-03-28 22 views
2

調査を実行するために公開サイトから情報を取得しようとしています。私が情報を入手したいサイトは次のものです:https://declaraciones.sri.gob.ec/mat-vehicular-internet/reportes/general/valoresAPagar.jsp。このサイトでは、データを取得するために文字列を配置する必要があります。問題は、情報を表示するためにボタンをダブルクリックする必要があることです。その後 enter image description hereダイナミックコンサルティングページからのWebスクレイピングR

、私は「Buscar」をクリックする必要があり、私は次の画面を得る:例えば、文字列pyk0911を使用して、私は次の画面を持っている」、私は上をクリックする必要があり、この画面の後 enter image description here をVer Avaluos "と表示されます。 enter image description here この最後の画面は、抽出したいオブジェクトで、データフレームまたはリストに保存します。この情報を取得したい理由は、文字列が多く、結果をクリックしてコピーするには時間がかかりすぎるためです。障害は2回のダブルクリックです。 Rに関数を作成して、文字列を挿入し、ModeloAño、変数PeriodoAvaluoなどの詳細情報を最終画面から取得します。

答えて

0

ここにいくつかの手順があります。まず、フォームに記入して提出してから、テーブルへのリンクを抽出してから、テーブルを読んでください。

library("rvest") 
library("stringr") 

url <- "https://declaraciones.sri.gob.ec/mat-vehicular-internet/reportes/general/valoresAPagar.jsp" 

s <- html_session(url) 
s_form <- html_form(s)[[2]] 
filled_form <- set_values(s_form, placaCamv="pyk0911") 
out <- submit_form(session=s, filled_form) 

# out contains the link to the data table that pops up. This extracts that link 
dat_path <- out %>% html_nodes("input.boton") %>% html_attr("onclick") %>% 
    .[2] %>% str_extract("(?<=\\(\\').+(?=','avaluos)") 

# then read the second table. I assume this is what you need. 
df <- read_html(paste0("https://declaraciones.sri.gob.ec", dat_path)) %>% 
    html_table(fill=TRUE) %>% .[[2]] 
> df 
    Período Avalúo Impuesto 
1  2016 1,699.00  8.50 
2  2015 1,699.00  8.50 
3  2014 1,699.00  8.50 
4  2013 1,699.00  8.50 
5  2012 1,699.00  8.50 
6  2011 1,699.00  8.50 
7  2010 1,699.00  8.50 
8  2009 1,699.00  8.50 
9  2008 1,699.00  8.50 
10  2007 1,699.00  8.50 
11  2006 3,398.00 16.99 
12  2005 7,036.00 50.36 
13  2004 10,554.00 111.08 
14  2003 14,072.00 202.16 
15  2002 16,990.00 300.00 
16  2001 4,000.00 68.00 
+0

ありがとう@coryは完璧に機能しました! – Duck

0

「Ver Avaluos」をクリックすると開いたウィンドウの左下を見ると、このデータをExcelにエクスポートできることがわかります。このデータを最小限の操作でデータフレームに取り込む最も簡単な方法は、データをExcelワークシートに保存した後、gdataパッケージにあるread.xlsコマンドを使用してデータを読み取ることです。これにより、データフレームに自動的に保存されます。

関連する問題