[R-br] WebScraping - Como passar informações ao site antes do readLines

Paulo Nogueira paulons em gmail.com
Quinta Fevereiro 23 09:10:22 BRST 2012


Lucas, realmente eu não tinha visto essa outra página com a quilometragem
estática, no html.
Resolve o problema nesse momento, mas algo a ser feito com calma é estudar
a solução proposta pelo Henrique.
Obrigado.

abs
Paulo

Em 17 de fevereiro de 2012 18:37, Lucas Barbosa <lucasbcr em gmail.com>escreveu:

> Achei, é só pegar o html de http://maplink.com.br/transito/sao-paulo-sp
> Tipo assim:
> *conexao <- url( "http://maplink.com.br/transito/sao-paulo-sp" )
> pagina <- readLines(conexao)
> pos <- grep('<span class="km_status">', pagina) * ### eu vi que o trecho
> *<span class="km_status"> * vinha logo antes da quilometragem no html*
> pagina[ pos:(pos+2) ]
> close(conexao)
> *
> Pelo que eu vi aqui agora, a informação sempre estará na linha *
> pagina[pos+1]*. Mas é melhor verificar isso direito.
>
> Em 17 de fevereiro de 2012 18:20, Lucas Barbosa <lucasbcr em gmail.com>escreveu:
>
> Paulo,
>> Eu abri agora a página e está com 533 km congestionados, mas não aparece
>> nenhum número 533 no html. Talvez esse 300 que você encontrou representava
>> outra coisa.
>> Eu fiz algo parecido para resolver o problema de calcular distâncias
>> entre cidades, mas foi com o Google Maps. Meu caso foi simples porque os
>> valores de interesse já estavam no html, mas a parte de congestionamento do
>> maplink parece estar só no java script mesmo.
>> Talvez você encontre essa informação no html de outro lugar desse site,
>> vou dar uma olhada aqui.
>> Att.,
>> Lucas Cusinato
>>
>>
>>
>> Em 15 de fevereiro de 2012 10:14, Paulo Nogueira <paulons em gmail.com>escreveu:
>>
>> Henrique, obrigado pelas dicas.
>>> Uso Ubuntu mas vou tentar adaptar o código que me passou e estudar o que
>>> posso fazer com ele.
>>> Muito obrigado.
>>>
>>> Paulo NS
>>>
>>> Em 14 de fevereiro de 2012 23:24, Henrique Dallazuanna <wwwhsd em gmail.com
>>> > escreveu:
>>>
>>> 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
>>>>
>>>> _______________________________________________
>>>> 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.
>>>
>>
>>
>
> _______________________________________________
> 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/20120223/bcfde8df/attachment.html>


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