Interpretação de conteúdo AJAX em páginas dinâmicas para suporte à localização de informações na web

July 19, 2017 | Autor: Icaro Dourado | Categoria: Web Information Retrieval, Web Pages, Large Scale
Share Embed


Descrição do Produto

Interpretação de Conteúdo AJAX em Páginas Dinâmicas para Suporte à Localização de Informações na Web Ícaro Cavalcante Dourado

Daniel G. Costa

Universidade Estadual de Feira de Santana (UEFS) Departamento de Tecnologia Av. Universitária, s/n - Km 03 da BR 116 Campus Universitário, Feira de Santana – BA CEP: 44031-460

Universidade Estadual de Feira de Santana (UEFS) Departamento de Tecnologia Av. Universitária, s/n - Km 03 da BR 116 Campus Universitário, Feira de Santana – BA CEP: 44031-460

[email protected]

[email protected]

ABSTRACT Web pages can be written using development techniques that allows in stages loading. Such possibility, presented by some technologies as AJAX, brings a new challenge to the development of applications that need to recover web pages in an automatic and large scale way. In such context, a computing solution has been created to interpret web pages with AJAX dynamic content, aiming at the using of pure HTML code in application for web information localization.

RESUMO Páginas na web podem ser escritas seguindo técnicas de desenvolvimento que permitem carregamento por etapas. Essa possibilidade, apresentada por tecnologias como AJAX, traz um novo desafio ao desenvolvimento de aplicações que necessitem recuperar páginas na web de forma automatizada e em larga escala. Considerando esse cenário, foi desenvolvida uma solução para interpretação de páginas com conteúdo dinâmico criado em AJAX, visando o tratamento de código HTML puro em aplicações para localização de informações na web.

Categories and Subject Descriptors

H.3.5. [Information Storage and Retrieval]: Online Information Services – web-based services.

General Terms Algorithms, experimentation.

Keywords AJAX, dynamic contents, web information retrieval.

1. INTRODUÇÃO A construção de páginas web utilizando conteúdo dinâmico é um fenômeno cada vez mais freqüente. Nessas páginas, marcações HTML, utilizadas pelos navegadores para a construção da representação visual apresentada ao usuário, são criadas em tempo de execução. Recursos como JavaScript [1], executados pelos navegadores durante a renderização da página, fornecem novas funcionalidades não presentes originalmente na Internet. Esses recursos moldam a estrutura da agora nomeada Web 2.0 [2]. Na web está disponível uma grande quantidade de informações, muito além do imaginado inicialmente para esse serviço. Percebese que tão importante quanto gerar, armazenar e distribuir essas informações é oferecer mecanismos para localizá-las adequadamente. Os usuários da web desejam acessar as

informações corretas para suas necessidades, em um menor tempo possível. No ainda curto tempo de vida da web, diversas soluções de busca foram criadas [3], atendendo tanto demandas gerais quanto específicas. A tecnologia AJAX (Asynchronous Javascript And XML) [4] permite que as páginas sejam carregadas por etapas. Utilizando scripts seguindo a linguagem JavaScript e estruturas de dados formatadas com XML, AJAX possibilita a adição de conteúdo dinâmico às páginas na web. Com isso, a página exibida ao usuário final é dependente da interpretação dos scripts pelo navegador, que pode, inclusive, solicitar interação direta do usuário com o browser. A localização de informações é dependente da análise prévia de grandes quantidades de páginas HTML. Em um cenário de Web 2.0, recursos que adicionam interatividade apresentam novos desafios à análise do conteúdo HTML das páginas. Softwares de busca precisam acessar o conteúdo de uma página para criar estruturas que facilitem sua localização, de forma fácil e eficiente pelo usuário. A utilização de conteúdos dinâmicos dificulta essa análise, já que o código HTML da página não está presente durante sua análise, uma vez que seu conteúdo final é dependente de interpretação. Considerando esse cenário, foi desenvolvida uma solução para transformar páginas formadas por código HTML e AJAX em paginas HTML puras. A idéia é interpretar os códigos dinâmicos, gerando um resultado em formato HTML. As páginas resultantes desse processo podem então ser utilizadas pelos tradicionais algoritmos utilizados em sistemas de busca. O artigo está organizado da seguinte forma. Na seção 2 são apresentados conceitos e características da localização de informações na web. Em seguida, na seção 3, a solução criada para interpretação de páginas com conteúdo dinâmico é apresentada, juntamente com casos de teste. A seção 4 traz as considerações finais do artigo. Por fim são apresentados os agradecimentos e as referências bibliográficas.

2. LOCALIZAÇÃO DE INFORMAÇÕES NA WEB A web é hoje o serviço de comunicação mais popular da Internet. Entre as aplicações disponíveis na web, a busca por informações ocupa lugar de destaque, tendo em vista a necessidade cada vez maior dos usuários em localizar informações com eficiência, rapidez e com alta relevância.

140 © 2008 Brazilian Computer Society

Para auxiliar na busca por informações, soluções foram desenvolvidas visando o atendimento de demandas tanto gerais quanto específicas. Por exemplo, usuários podem querer utilizar um mecanismo de busca geral, para localização de informações quaisquer. Por outro lado, a demanda pode ser por ferramentas de busca por informações específicas, considerando dados em áreas como bioinformática e economia. Os mecanismos de localização de informações utilizam softwares especiais chamados motores de busca. Esses softwares analisam o conteúdo de milhões de páginas mapeando informações em uma estrutura de dados, que é utilizada para montar os resultados que serão apresentados aos usuários em um procedimento de busca. Essa análise é dependente de uma varredura freqüente da web em busca do maior número de páginas possível. A busca por essas informações ocorre através de um software especial chamado crawler [5]. De acordo com dados fornecidos pela empresa de monitoramento de inteligência competitiva DIGIMIND [6], o Google [7], que é hoje o sistema de busca mais utilizado na Internet, pode não cobrir em sua base de resultados sequer 10% da informação disponível na web. Isso decorre do fato de que buscadores convencionais estão tecnicamente restritos à informação da chamada web superficial [8]. O conjunto de páginas que são apontadas por hyperlinks forma a web superficial. A maioria dos buscadores hoje disponíveis está focada na localização de informações nessas páginas, com os mecanismos de busca seguindo os hyperlinks das páginas para percorrer o maior conteúdo possível da web. Estima-se que a maior parte do conteúdo da web seja acessível apenas a partir de interfaces de busca, comumente formadas por formulários HTML e web services [9]. Esse conjunto de informações ficou conhecido como web profunda [10]. Em ambas as abordagens, considerando tanto informações na web superficial quanto na web profunda, a análise de uma página HTML é um processo de verificação de suas tags, com o intuito de geração de uma estrutura chamada de árvore DOM (Document Object Model) [11]. Essa estrutura permite a manipulação do conteúdo da página de forma estruturada, facilitando a identificação das informações presentes na página. A execução do crawler irá percorrer a web coletando páginas que irão passar por esse processo de análise. Quando páginas com código escrito seguindo a especificação AJAX são encontradas, o processo de análise desses trechos é comprometido, uma vez que a parte do código HTML relativa a esse código dinâmico não estará disponível. Seguindo os procedimentos convencionais, as partes de uma página web que não são formadas por código HTML são tipicamente desconsideradas. A localização de informações é prejudicada com o descarte de partes da página que poderiam ser consideradas para montar resultados de busca. O problema é ainda maior quando o código dinâmico é utilizado pra compor formulários HTML, que é a base para sistemas de busca baseados na web profunda.

manipulação da página e geração da árvore DOM. Essa interpretação é baseada na pré-execução de potenciais scripts contidos nas páginas. Com isso, informações antes descartadas podem ser consideradas pelo sistema de busca. Diante desta problemática, foram discutidas as abordagens para interpretação dos scripts contidos nas páginas. Uma possibilidade é o desenvolvimento de um software capaz de interpretar o código AJAX, e que produzisse como saída uma página HTML pura. Outra abordagem é considerar códigos presentes em navegadores web que já possuem implementado o processo de interpretação, já que um navegador deve apresentar ao usuário apenas código HTML. Um browser possui mecanismos para interpretação de scripts que não são HTML, como css [12] e JavaScript, que são utilizados no processo de renderização da página. Esse suporte, montado na forma de códigos independentes chamados de engines, foi utilizado como base para a solução dos problemas apresentados. O procedimento de interpretação de uma página corresponde, portanto, a submissão do endereço dessa página ao engine apropriado, que deve ser capaz de suportar a execução dos scripts contidos na página e retornar o código-fonte resultante, com as marcações HTML esperadas. Para a obtenção do engine apropriado foram considerados alguns navegadores open source. Como resultado desse estudo, e após alguns cenários de teste, foi considerado o engine presente no navegador Lobo [13]. Esse engine, conhecido como Cobra [14], possui as funcionalidades de um renderizador HTML e um parser DOM. Tal implementação possui as funcionalidades aqui pretendidas, que são a renderização de páginas de entrada e o retorno da árvore DOM do código HTML resultante. O processo geral de interpretação é apresentado na Figura 1. A base de dados corresponde ao repositório das páginas que serão considerados. Para decidir quais páginas possuem código AJAX, um código analisador foi desenvolvido. Esse código procura por marcações específicas de código AJAX. As páginas que possuem marcações que devem ser interpretadas são submetidas ao código de interpretação (engine escolhido), que produz como resultado uma página HTML.

3. INTERPRETANDO CÓDIGO AJAX Considerando o escopo de localização de informações na web, além das tendências de desenvolvimento seguindo tecnologias da Web 2.0, foi identificada uma problemática envolvendo páginas com código AJAX. Para evitar que conteúdo dinâmico seja descartado, prejudicando sistemas de busca de informações, um software de interpretação AJAX pode ser utilizado antes da

Figura 1. Processo de interpretação das páginas.

141

Alguns casos de teste foram utilizados para verificar a solução encontrada, baseada no engine Cobra. Um conjunto de páginas contendo conteúdo dinâmico serviu como entrada para o código interpretador. A Figura 2 apresenta um código JavaScript presente em uma página utilizada como entrada ao processo de interpretação, já resultante de prévia seleção pelo script Analisador. var googleSearchIframeName = "results_017262666028140812660:hb_khvgblte"; var googleSearchFormName = "searchbox_017262666028140812660:hb_khvgblte"; var googleSearchFrameWidth = 590; var googleSearchFrameborder = 0; var googleSearchDomain = "www.google.com"; var googleSearchPath = "/cse";

Figura 2. Código JavaScript.

abrangência e relevância, culminando em sistemas de busca mais adaptados às transformações da web. Após a realização de testes considerando um conjunto com cerca de 50 casos, verificou-se que a solução desenvolvida atingiu o objetivo desejado. As páginas resultantes do processo de interpretação continham as partes HTML esperadas. Pretende-se ainda aplicar esses resultados em um sistema de localização de informações na web que está sendo desenvolvido com apoio de projetos de pesquisa em execução na Universidade Estadual de Feira de Santana. Ainda há muito a ser feito, principalmente quando consideramos buscas na web profunda. Nesse caso, a interação com formulários HTML torna-se um problema quando a estrutura desses elementos é criada dinamicamente, o que dificulta a extração de propriedades de formulários contendo atributos ou targets dinâmicos. Essa situação é agravada quando a requisição não induz à formação de um endereço para a requisição GET HTTP, dificultando assim a determinação dos parâmetros de busca do formulário [10].

Com a aplicação dos mecanismos de interpretação, foi adicionado à página original o código HTML apresentado na Figura 3.

5. AGRADECIMENTOS



6. REFERÊNCIAS

Figura 3. Código HTML resultante. O código apresentado nessa Figura, resultante do processo de interpretação, pode ser utilizado agora por scripts baseados em HTML, como os presentes em sistemas de busca de informações na web.

4. CONCLUSÃO A Web 2.0, com seus ambientes que facilitam e encorajam a participação do usuário, vem potencializando redes sociais como o Orkut (www.orkut.com), as wikis como a Wikipedia.org, as ferramentas de comunicação on-line como chats e videoconferências, os blogs, as ferramentas de busca, entre diversos outros recursos. As possibilidades trazidas pela Web 2.0 apresentam um novo desafio ao desenvolvimento de produtos e experimentos que necessitem recuperar páginas da web de forma automatizada e em larga escala. As soluções tradicionais ainda são baseadas no processamento apenas de código HTML, embora seja cada vez mais comum o desenvolvimento de páginas com elementos adicionais a essas marcações. Com isso, páginas seguindo tecnologias Web 2.0 acabam sendo rejeitadas ou mal aproveitas pelos sistemas de busca, causando prejuízo aos usuários desse serviço. A solução desenvolvida apresenta uma nova perspectiva para o processamento automático de páginas com conteúdo dinâmico. A interpretação prévia de scripts, visando a obtenção de código HTML equivalente, permite a realização de buscas com maior

Essa pesquisa recebeu apoio do programa PROBIC/UEFS 2008. [1] Flanagan, D. 2006. JavaScript: The Definitive Guide. 5a ed. O´reilly. 1018p. [2] Web 2.0. 2008. Disponível em www.w3c.org. [3] Branski, R. 2000. Localização de informações na internet: características e formas de funcionamento dos mecanismos de busca. In: Economia & Tecnologia. [S.l.: s.n.]. v. 12, n. 1, p. 11_19. [4] Nicholas, C., Zakas, J. e Joe, F. 2007. Professional Ajax. 5a ed. O´reilly. 624p. [5] Pinkerton, B. (1994). Finding what people want: Experiences with the WebCrawler. In: First World Wide Web Conference, Geneva, Switzerland. [6] DIGIMIND. 2008. Disponível em http://www.digimind.com. [7] Google Search Engine. 2008. Disponível em http://www.google.com. [8] Chang, F. e Cho, J. (2006). Accessing the Web: From Search to Integration. In: ACM SIGMOD international conference on Management of data. [9] Papazoglou, M. (2007).Web Services: Principles and Technology. 1a ed. O´reilly. 784p. [10] Bergman, M. (2001). The Deep Web: Surfacing Hidden Value. In Journal of Electronic Publishing, Michigan University. [11] HTML DOM Tutorial (2008). Disponível em http://www.w3schools.com/HTMLDOM/default.asp. [12] Meyer, E. (2006). CSS: The Definitive Guide. 3a ed. O´reilly. 536p. [13] The Lobo Project. (2008). Disponível em http://lobobrowser.org/. [14] Cobra: Java HTML Renderer & Parser. (2008). Disponível em http://lobobrowser.org/cobra.jsp.

142

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.