2014-02-15 3 views
2

Мне нужно извлечь следующий блок текста из набора результатов Google, полученного с использованиемкак извлекать текст HTML с помощью R

require(XML) 
    require(RCurl) 
input<-"R%statistical%Software" 
require(XML) 
    require(RCurl) 
    url <- paste("https://www.google.com/search?q=\"", 
       input, "\"", sep = "") 

    CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "") 
    script <- getURL(url, followlocation = TRUE, cainfo = CAINFO) 
    doc <- htmlParse(script) 

в R пакет XML

экстракта извлеченного HTML документ следующего

</ul></div> 
</div> 
</div> 
<span class="st">R, also called GNU S, is a strongly functional language and environment to <br> 
statistically explore data sets, make many graphical displays of data from custom<br> 
 <b>...</b></span><br> 
</div> 
<table class="slk" cellpadding="0" cellspacing="0" style="border-collapse:collapse;margin-top:1px"> 
<tr class="mslg"> 
<td style="padding-left:23px;vertical-align:top"><div class="sld"> 

в этом примере мне нужно извлечь следующий текст для каждого результата возвращается

«R, также называемый GNU S, является строго функциональным языком и среды для
статистически исследовать наборы данных, сделать много графических дисплеев данных из пользовательских
»

я был пойти с некоторыми из функций пакет XML для R, но я не думаю, что достаточно разбираюсь в HTML и XML. текст будет меняться для каждого результата возвращается, так что его на самом деле? Поле

<span class="st"> 

? Мне нужно извлечь. Как вы, наверное, догадались, что я не знаком с HTML или XML. Поэтому любые рекомендации для хорошего учебника или книги, которые бы дали мне достаточно обзора для решения таких проблем, были бы очень желанными. Thanks

+0

Можете ли вы разместить ссылку на файл, который вы разбираете? – jlhoward

ответ

4

Это возвращает список, result с текстом из всех тегов span, используя class="st" (в вашем документе 7).

input<-"R%statistical%Software" 
url <- paste0("http://www.google.com/search?q=",input) 
doc <- htmlParse(url) 
result <- lapply(doc['//span[@class="st"]'],xmlValue) 
result[1] 
# [[1]] 
# [1] "R, also called GNU S, is a strongly functional language and environment to \nstatistically explore data sets, make many graphical displays of data from custom\n ..." 

Обратите внимание, что использование http вместо https значительно упрощает извлечение документа.

+0

Фантастический, он работает, спасибо – AndyC

Смежные вопросы