2016-03-25 13 views
0

ITTO web sitesi, bir kereste ürünleri tablosu oluşturur ve sorgu gönderildikten sonra (aynı sayfada) doğrudan arama formunun altına akar. Chrome’un SelectorGadget’inden edindiğim bilgileri kullanarak, tabloyu "td" css öğesi olarak görünmesini bekliyorum. html_nodes ile sayfanın diğer elementleri incelenmesiTahmini beklenen html_node ile kazıma yapıldığında görünmüyor

{xml_nodeset (0)} 

() submit_form düşündürmektedir:

tablosu "td" olmanın bulunmadığını göstermiştir sonuçlanır
library(rvest) 

session <- html_session("http://www.itto.int/annual_review_output/?mode=searchdata") 
form <- html_form(session)[[2]] 
form <- set_values(form, "countries[]" = "8", "products[]" = "1" ,"flows[]" = "1", "years[]" = "2014") 
query <- submit_form(session, form, submit = NULL) 
page <- read_html(query) %>% html_nodes("td") 
page 

... 2014 Arnavutluk hakkında bilgi kazımak için rvest kullanma() beklendiği gibi başka bir şekilde gerçekleştirildi.

Benim sorum, beklenen tablo nerede?

cevap

2

Bu seçim kutusu seçenekleri kazımak ve sadece doğrudan POST çağrıyı beslemek için (uzun vadede) daha kolay olabilir:

library(httr) 
library(rvest) 

res <- POST(url = "http://www.itto.int/annual_review_output/?mode=searchdata", 
      body = list(`countries[]` = "76", 
         `products[]` = "1", `flows[]` = "1", 
         `years[]` = "2014"), 
      encode = "form") 

pg <- content(res, as="parsed") 
html_nodes(pg, "td") 

## {xml_nodeset (7)} 
## [1] <td>Brazil</td> 
## [2] <td>Ind. roundwood</td> 
## [3] <td>Exports Quantity</td> 
## [4] <td>1000 m3</td> 
## [5] <td>2014</td> 
## [6] <td style="text-align:right;">204.59</td> 
## [7] <td>I</td> 
+0

sayesinde rehberlik takdir! – Nathan