[R-br] WebScraping - Como passar informações ao site antes do readLines
Henrique Dallazuanna
wwwhsd em gmail.com
Terça Fevereiro 14 23:24:58 BRST 2012
Paulo,
Esses casos ocorrem pois o conteúdo é carregado dinamicamente (via Ajax,
jQuery, etc..), portanto o conteúdo não fica disponível no Source Code da
página.
Uma alternativa pode ser utilizado abaixo, ou ainda alternativas como
http://maplink.com.br/transito/sao-paulo-sp que carrega o coteudo
diretamente na página.
## Para Windows
library(RDCOMClient)
library(XML)
ieApp <- COMCreate("InternetExplorer.Application")
ieApp[['Visible']] <- TRUE
ieApp$Navigate("http://www.maplink.com.br")
ieApp$Document()$Body()$OuterHTML()
2012/2/13 Paulo Nogueira <paulons em gmail.com>
> www.maplink.com.brHenrique, dei mais uma mexida aqui e ainda não resolvi
> meu problema.
> Talvez eu não tenha sido claro na pergunta, então vou mudar o exemplo.
>
> Quando acesso o site Maplink <http://www.maplink.com.br> aparece um mapa
> da cidade de São Paulo (minha localidade) e um box na direita com a
> informação de quantos quilômetros de congestionamento a cidade apresenta no
> momento (aliás, estamos com 300km às 13:40!).
>
> url<-url('http://maplink.com.br/',"rt")
> map<-readLines(url)
> grep('Km',map)
>
> Ao rodar o código acima o R importa o código fonte da página, que não
> contem o valor 300.
> Ao abrir o Chrome ou Firefox e utilizar a opção "Inspecionar Elemento" é
> possível encontrar o 300 no meio do código.
> Será possível importar no R o código HTML que eu vejo no inspecionar
> elemento? Isso seria suficiente e resolveria uma séria de questões que
> tenho.
>
> Alguém já fez algo semelhante a isso ou pode dar a dica de algum caminho,
> mesmo sem o R?
>
> Abraços,
> Paulo
>
> Em 31 de janeiro de 2012 21:43, Henrique Dallazuanna <wwwhsd em gmail.com>escreveu:
>
>> Paulo,
>>
>> Veja a função postForm do pacote RCurl, pois ela faz exatamente o post em
>> formulários web.
>>
>> 2012/1/31 Paulo Nogueira <paulons em gmail.com>
>>
>>> Boa tarde R-Br.
>>> Mais uma vez peço a vocês uma orientação de caminho para descobrir como
>>> solucionar problemas relacionados a web scraping.
>>>
>>> Hoje consigo ler códigos HTML de ṕáginas atráves do readLines e depois
>>> extrair os dados que me interessam utilizando funções como grep, gsub e
>>> regexpr. Evolui nisso e tenho conseguido resultados bastante interessantes.
>>> O problema é que nem sempre o que é exibido no navegador, está disponível
>>> no código fonte da página.
>>>
>>> Por exemplo, a página inicial do site Webmotors (
>>> http://www.webmotors.com.br/index.html) apresenta um box de pesquisa.
>>> Escolhendo, na página, os campos marca = Chevrolet, modelo = Astra, estado
>>> = AM e cidade = Manaus e clicando em BUSCAR, encontro esse resultado:
>>>
>>> http://www.webmotors.com.br/Webmotors/Compra/carrosResultado/carros-resultado.aspx?marca=2&modelo=1042&descrModelo=ASTRA&precoinicial=&precofinal=&uf=AM&cidade=Manaus&anoInicial=&anoFinal=&anuncionovos=N&anunciousados=U&revend=S&part=S&concessionaria=S&Ordem=OP&orig=S
>>>
>>> E assim consigo extrair com o R as informações dos veículos Astra a
>>> venda em Manaus.
>>> Porém, como posso fazer para o R informar ao site que desejo fazer essa
>>> busca? Gostaria de automatizar essa parte.
>>> Sei que na URL resultado basta trocar os campos como &modelo=1042 ou
>>> marca=2, etc... mas também não sei quais são os possíveis valores para
>>> esses campos.
>>>
>>> Ressalto que esse problema é um exemplo. Gostaria de aprender a fazer
>>> chamada às funções (acredito que são as .js) da página para construir as
>>> páginas com os resultados e então importar com o readLines para guardar os
>>> dados de meu interesse. Espero ter sido claro no questionamento.
>>> Agradeço qualquer ajuda.
>>>
>>> Abraços,
>>> Paulo Nogueira Starzynski
>>>
>>>
>>>
>>> _______________________________________________
>>> 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.
>>>
>>
>>
>>
>> --
>> Henrique Dallazuanna
>> Curitiba-Paraná-Brasil
>> 25° 25' 40" S 49° 16' 22" O
>>
>> _______________________________________________
>> 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.
>>
>
>
> _______________________________________________
> 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.
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120214/99a7bb71/attachment.html>
Mais detalhes sobre a lista de discussão R-br