2016-04-15 23 views
5

Hasat paketini kullanarak, CABI invasive species compendium numaralı istilacı bitki türleriyle ilgili verileri ayıklamaya çalışıyorum.Bir html tablosundan veri kazıma

Birkaç öğreticiye baktığımda, tablolardaki verileri kolayca kolayca çizebilmem gerektiğini anladım. Ancak, zorluklarla karşılaşmaya devam ediyorum.

Türler Brassica tournefortii için konum verileri istiyorum diyelim. Türün kaydedildiği yerlerin ayrıntılarını öğrenmek için outlined here tekniklerini kullanan bu kodu kullanabilmem gerekir.

library(rvest) 
isc<-read_html("http://www.cabi.org/isc/datasheet/50069") 
isc %>% 
html_node("#toDistributionTable td:nth-child(1)") %>% 
html_text() 

Ancak bu kod çalıştıran hatası

Error: No matches 

Ben webscraping tamamen yeni duyuyorum olsun. Korkunç bir şey mi yapıyorum?

cevap

8

İlk olarak, size daha fazlasını verebilseydim. Son olarak, $ SPORTSBALL veya $ MONEY ile ilgili olmayan bir kazıma sorusu! :-)

Bu site kötülüktür.

library(rvest) 
library(xml2) 

isc <- read_html("http://www.cabi.org/isc/datasheet/50069") 

ns <- xml_ns(isc) 

xml_text(xml_find_all(isc, xpath="//div[@id='toDistributionTable']/table/tbody/tr/td[1]", ns)) 

## [1] "ASIA"       "Azerbaijan"      
## [3] "Bhutan"       "China"       
## [5] "-Tibet"       "India"       
## [7] "-Delhi"       "-Indian Punjab"     
## [9] "-Rajasthan"      "-Uttar Pradesh"     
## [11] "Iran"       "Iraq"       
## [13] "Israel"       "Jordan"       
## [15] "Kuwait"       "Lebanon"      
## [17] "Oman"       "Pakistan"      
## [19] "Qatar"       "Saudi Arabia"     
## [21] "Syria"       "Turkey"       
## [23] "Turkmenistan"     "United Arab Emirates"   
## [25] "Uzbekistan"      "Yemen"       
## [27] "AFRICA"       "Algeria"      
## [29] "Egypt"       "Libya"       
## [31] "Morocco"      "South Africa"     
## [33] "Tunisia"      "NORTH AMERICA"     
## [35] "Mexico"       "USA"       
## [37] "-Arizona"      "-California"     
## [39] "-Nevada"      "-New Mexico"     
## [41] "-Texas"       "-Utah"       
## [43] "SOUTH AMERICA"     "Chile"       
## [45] "EUROPE"       "Belgium"      
## [47] "Cyprus"       "Denmark"      
## [49] "France"       "Greece"       
## [51] "Ireland"      "Italy"       
## [53] "Spain"       "Sweden"       
## [55] "UK"        "-England and Wales"    
## [57] "-Scotland"      "OCEANIA"      
## [59] "Australia"      "-Australian Northern Territory" 
## [61] "-New South Wales"    "-Queensland"     
## [63] "-South Australia"    "-Tasmania"      
## [65] "-Victoria"      "-Western Australia"    
## [67] "New Zealand" 
+0

Fantastik, teşekkür ederim: Aynı zamanda xml2 paketini kullanarak anlamına gelir ele alınması gereken gömülü ad alanlarını kullanır! Bu, o siteden veri almak için iyi bir başlangıç ​​yapmama yardımcı olmalı. Xml_find_all işlevinin xpath bölümüne gitmek için bilgileri nasıl edinirsiniz? –

+1

Sağ tıklatarak ve bu tabloda Eleman İncelemek'i seçtikten sonra Geliştirici Araçları'nda gösterilen yoldan eşleştirdim. Bunu CSS ile yeniden yapılandırabilirim, ancak bazı durumlarda biraz yardımcı olacağımı bilerek. – hrbrmstr