2017-02-15 14 views
1

У меня есть data.frame с двумя переменными, один из которых содержит только URL-адреса. Я хотел бы использовать эти URL-адреса, чтобы очистить их все и извлечь соответствующую текстовую информацию от каждого и каждого из них, и, сделав это, - добавить переменные в dataframe, чтобы получить текстовый анализ.Webcraping от переменной

FAO_CountryName  FAO_CountryURL 
Algeria    http://www.fao.org/giews/countrybrief/country.jsp?code=DZA 
Egypt    http://www.fao.org/giews/countrybrief/country.jsp?code=EGY 

Другими словами, я хотел бы найти способ, чтобы рассмотреть эти URL-адреса, как собственно HTML-страниц в моде, что я мог скоблить их с помощью команды read_html().

Идея заключается в том, чтобы иметь что-то вроде этого в конце процесса:

FAO_CountryName  FAO_CountryURL            FAOText 
Algeria    http://www.fao.org/giews/countrybrief/country.jsp?code=DZA  Algeria is an interesting country 
Egypt    http://www.fao.org/giews/countrybrief/country.jsp?code=EGY  Egypt is interesting as well but in a different way 

ответ

0

Сначала мы определим функцию, чтобы собрать информацию мы хотим от конкретного URL:

library(rvest) 
scrapeFAO <- function(x) { 
    as.character(x) %>% 
     read_html() %>% 
     html_nodes('.Normal') %>% 
     .[1] %>% 
     html_text() 
} 

scrapeFAO("http://www.fao.org/giews/countrybrief/country.jsp?code=DZA") 
# [1] "Reference Date: 24-November-2016" 

Это просто пример, мы можем собрать любой элемент, который нам нужен на этой странице. Pls читает больше о пакете rvest, чтобы расширить возможности здесь.

Тогда мы хотим применить эту функцию к каждой строке и cbind результат к исходному dataframe:

final <- cbind(mydf, apply(mydf[2],1, scrapeFAO)) 

Обратите внимание, что, возможно, более эффективные способы сделать это.

Надеется, что это помогает

+0

Pls рассмотреть вопрос о принятии и upvoting ответа, если вы думаете, что может помочь другим людям – GGamba

+0

Я новичок в стеке, поэтому я не получил репутацию достаточно пока, судя по всему. Я сделаю, как только> Я получу еще немного. – Ileeo

+0

Привет, Большое спасибо за помощь. Хорошо для сценария, через который можно рассмотреть различные URL-адреса. В любом случае, я не понимаю, как формула должна применяться к каждой строке и - в любом случае - она, похоже, не работает с моим файловым фреймом FAO_data. Не могли бы вы прояснить ситуацию? Еще раз спасибо. – Ileeo