[R-br] Web Scraping Lattes com R

Paulo Nogueira Starzynski paulons em gmail.com
Terça Março 24 11:03:11 BRT 2015


Olá Leonardo,
montei um rápido exemplo que, acredito, possa te inspirar.

library("rvest")
lattes.extract <- function(id){

  # Extração do código fonte
  url.fonte <- html(paste("http://lattes.cnpq.br/", id, sep=""))

  # Nome
  nome <- html_text(html_nodes(url.fonte,
xpath="/html/body/div[1]/div[3]/div/div/div/div[3]/div/div[2]/div"),
encoding="UTF8")

  # Resumo
  resumo <- html_text(html_nodes(url.fonte,
xpath="/html/body/div[1]/div[3]/div/div/div/div[2]/p"), encoding="UTF8")

  # Endereço Profissional
  endereco <- html_text(html_nodes(url.fonte,
xpath="/html/body/div[1]/div[3]/div/div/div/div[4]/div/div[2]/div"),
encoding="UTF8")

  # Extraindo apena primeira formação (é possível todas, incluindo os anos)
  formacao <- html_text(html_nodes(url.fonte,
xpath="/html/body/div[1]/div[3]/div/div/div/div[5]/div/div[2]/div"),
encoding="UTF8")

  return (cbind(nome, resumo, endereco, formacao))
}

lista.ids <- c(7141811368487014, 5235908630509803, 8039053295273558)
tabela.saida <- do.call(rbind.data.frame, lapply(lista.ids, lattes.extract))

View(tabela.saida)


Abraços,
Paulo

Em 24 de março de 2015 02:34, L N <leofn3 em gmail.com> escreveu:

> Caros,
>
> Antes de tudo peço mil desculpas pela imensa ignorância que me assola: sou
> de ciências sociais e não de programação.
> Segui a sugestão desta lista e utilizei o rvest como indicaram.
>
> install.packages("rvest")
> library("rvest")
> Leolattes <- html("http://lattes.cnpq.br/7141811368487014")
> Leolattes
>
> Leolattes %>%
>   html_nodes(".nome") %>%
>   html_text()
> [1] "Leonardo Fernandes Nascimento"
>
> Deste modo, consigo extrair os dados individualizados: nome, resumo,
> produção, etc. do Lattes.
> Mas tenho alguns problemas:
>
> 1 - Como unificar as informações em uma tabela: Nome, Resumo, Endereço,
> etc. Não acertei usar o html_table().
>
> 2 - Vou extrair mais de 300 CV Lattes, já tenho uma lista com todas as ID
> Lattes.
> Há como fazer um "for" utilizando o rvest e jogar tudo para uma tabela?
> Caso alguém responda posso colocá-lo como um dos autores do artigo.
> Abs
> Leonardo
>
>
>
>
> Em 22 de março de 2015 12:03, L N <leofn3 em gmail.com> escreveu:
>
>> Olá Pessoal,
>>
>> Alguém que saiba extrair os CV Lattes (XML) via R?
>> Tenho listagem de todos os endereços e quero montar um
>> banco de dado com isso.
>> Há o ScriptLattes para Python mas eu já tentei e não consegui.
>> Abs,
>>
>> *Leonardo F. Nascimento*
>>
>>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150324/1e970c1d/attachment.html>


Mais detalhes sobre a lista de discussão R-br