[R-br] WebScraping - Como passar informações ao site antes do readLines
Lucas Barbosa
lucasbcr em gmail.com
Sexta Fevereiro 17 18:37:52 BRST 2012
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.
>>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120217/af036731/attachment.html>
Mais detalhes sobre a lista de discussão R-br