Saltar para conteúdo


Foto
- - - - -

Fazer parsing a um site


  • Por favor inicie sessão para responder
5 respostas a este tópico

#1 giuliapo

giuliapo

    Novato

  • Membros
  • Pip
  • 8 mensagens

Mensagem publicada 03 February 2011 - 15:55

Olá a todos.Tenho um problema em mãos que não sei qual é o standard para se resolver isto, como é que as outras apps fazem isto. Parto do pressuposto que o site em questão não disponibiliza nenhuma API.A questão é a seguinte.Quero retirar informação de um site para permitir uma navegação pelo site de uma forma mais rápida. Como exemplo, o sapo.pt.Pensei em duas estratégias, se calhar falta-me a 3ª que é a correcta :)1 - Fazer pedido HTTP ao sapo.pt na app, fazer parsing da página e e assim criar as várias estruturas: Noticias, Cinema, etc etc2 - Criar uma web app que faz parsing ao site, retirando tudo o que seja "lixo", javascripts, imagens, etc e a app no Android em vez de se ligar ao sapo.pt, ligar-se-ia a esta web app para assim sacar apenas os dados que interessam directamente.Vantagens e desvantagens que encontro:1 - Usando a opção 1, parece-me que o tráfego utilizado é grande porque é necessário fazer download de toda a página e só depois fazer parse da mesma.Isto implica muito tráfego e algum tempo de processamento2 - Na opção 2, a app iria ligar-se a ao um server que já teria esse parse todo feito, poupando assim tráfego (só saca os dados relevantes) e tempo de processamento porque já vem tudo prontinho :)A desvantagem é que o site sapo.pt neste caso, nao iria receber os hits. E com o tempo, se muita gente usasse a app, o sapo.pt poderia bloquear o acesso da webappO que acham? Falta-me a opção 3? Como é normalmente resolvida esta questão?Já vi apps que simplesmente abrem o site numa janela embebida na app. Acho que isto não faz sentido, por várias razões.Obrigado pelas dicas.

#2 WhiT3Kr0w

WhiT3Kr0w

    Master

  • Administradores
  • 3316 mensagens
  • LocalizaçãoUK
  • Nexus 5, Nexus 10, S2

Mensagem publicada 03 February 2011 - 16:27

Normalmente existem webservices para aceder a certos conteúdos que é o que a maioria das apps usa. Estes são normalmente de acesso gratuíto e públicos não havendo problema em os usar. Contudo aquilo que estás a sugerir não sei se será permitido. Ler a página do site e usar essa informação na tua app.
Chat/ajuda do fórum: http://l.androidpt.com/chat
Usem a pesquisa por favor. Não insiram perguntas que já foram respondidas inúmeras vezes.
Usem o "Gosto" nos posts para agradecer a quem vos ajuda e não criem posts desnecessários.


Carpe diem quam minimum credula postero.

#3 giuliapo

giuliapo

    Novato

  • Membros
  • Pip
  • 8 mensagens

Mensagem publicada 04 February 2011 - 12:56

Contudo aquilo que estás a sugerir não sei se será permitido. Ler a página do site e usar essa informação na tua app.

Então e sites que não têm nenhuma API?Há imensos assim. Como resolverias esta questão? Qual é o standard? O que faz o resto do pessoal?Obrigado

#4 WhiT3Kr0w

WhiT3Kr0w

    Master

  • Administradores
  • 3316 mensagens
  • LocalizaçãoUK
  • Nexus 5, Nexus 10, S2

Mensagem publicada 04 February 2011 - 13:26

Em relação ao Sapo este tem vários webservices que podes usar.Se for um site sem qualquer API então aconselho-te a contactar os admins do site em questão e perguntar se podes usar a informação que eles disponibilizam. Até podes ter a opção de criar uma app oficial.
Chat/ajuda do fórum: http://l.androidpt.com/chat
Usem a pesquisa por favor. Não insiram perguntas que já foram respondidas inúmeras vezes.
Usem o "Gosto" nos posts para agradecer a quem vos ajuda e não criem posts desnecessários.


Carpe diem quam minimum credula postero.

#5 rodlfal

rodlfal

    Membro

  • Membros
  • PipPip
  • 18 mensagens

Mensagem publicada 12 February 2011 - 16:50

Sinceramente não te aconselho a fazeres isso, porque basta o site mudar, e o site muda, para tudo deixar de funcionar. Mas se quiseres mesmo fazer, cria tu um web-service que lê o site do sapo saca a informação que queres e tu só chamas esse web-service no android com a informação já estruturada em xml ou json.A sapo disponibiliza alguns serviços mas nada de muito especial. Não sei o que pretendes retirar do site, mas também tens a opção dos RSS's. Agora a primeira opção está fora de questão, para alem de consumir bastante tráfego, o próprio parsing ao site é custoso para o dispositivo, e quando quiseres mudar tens de estar a mudar na app, que é má política. cumps

#6 victorelli17

victorelli17

    Novato

  • Membros
  • Pip
  • 3 mensagens

Mensagem publicada 12 February 2011 - 19:15

Acho que a melhor forma seria tu implementar um parser de RSS.Link explicando melhor oq é RSS:http://antiga.ajuda.sapo.pt/comunicacao/fotos/utilizacao_do_servico/RSS.htmlA maioria dos sites disponibilizam os RSS. EX: http://rss.sapo.pt/tek/Aqui tem um bom tutorial sobre implementar um parser de RSS em Android.Aqui tem um tutorial bom sobre o assunto.http://www.ibm.com/developerworks/xml/tutorials/x-androidrss/index.htmlabraço