Vitor Pamplona

Innovation on Vision: Imaging , Enhancement and Simulation

Crawling na Web Pública e na Web Escondida

Em cooperação com Maurício Moraes.

A Web constitui a maior e mais variada base de dados do mundo, onde as informações, distribuídas em sítios, abrangem uma ampla gama de assuntos. Os textos estão armazenados em hiperdocumentos e hiperligações, de forma semi-estruturada ou não-estruturada, e não possuem um contexto único, ou seja, assuntos diferentes e hiperligações para contextos diferentes podem ser encontrados em um mesmo hiperdocumento. Para facilitar a busca por uma determinada informação, faz-se necessário que os dados da Web sejam primeiramente encontrados, filtrados e categorizados. Essas tarefas podem ser executadas manualmente, mas o custo seria elevado, a eficiência baixa, e a eficácia seria questionável, visto que é humanamente impossível garantir o escrutínio de uma parte significativa da Web em busca de determinada informação. Os processos que localizam, obtêm e indexam automaticamente hiperdocumentos na Web são chamados crawlers, robots ou spiders [Cho and Garcia-Molina 2000]. Tais processos podem ser entendidos como sendo buscadores em grafos, onde a Web é o grafo, os hiperdocumentos são os nós e as hiperligações e os formulários são as arestas.

A Web pode ser dividida em 2 partes claramente distintas e com pouca sobreposição entre si: a Web Pública (Public Indexable Web ou Surface Web) e a Web Escondida (Hidden Web ou Deep Web) [Bergman 2001, Chang et al. 2004]. A primeira é constituída pelo conjunto de hiperdocumentos alcançáveis por meio de hiperligações. A segunda é constituída por hiperdocumentos: (1) dinâmicos, construídos sob demanda para responder a uma submissão de formulário; (2) não referenciados, para os quais nenhuma outra página aponta; (3) que exigem autenticação; (4) que variam de acordo com o contexto em que são acessados; (5) cujo acesso é limitado por meios técnicos (e.g. Robots Exclusion Standard, CAPTCHAs); (6) acessáveis por hiperligações gerados por client-scripts; e, finalmente, (7) não textuais (e.g. imagem, vídeo, áudio).

A partir do uso de técnicas de Overlap Analysis [Bergman 2001] e de Random IP-Sampling [Chang et al. 2004], estima-se que a Web Escondida, com aproximadamente 500 bilhões de hiperdocumentos, seja aproximadamente 500 vezes maior que a Web Pública. A Web Escondida é semelhante à Web Pública em alguns aspectos: é enorme, diversa e seu crescimento é contínuo e rápido. No entanto, a Web escondida se difere por: ser fracamente perscrutada pelos crawlers atuais (e.g. Google, Yahoo!), possuir alto grau de estruturação e ser bastante desconexa [Bergman 2001]. Experimentos de Chang et al. [2004] indicam um conjunto de características importantes da Web Escondida: (1) seus formulários de entrada são encontrados a partir da página inicial dos seus respectivos sítios, em uma profundidade de varredura de no máximo 5 páginas; (2) o número de páginas semi-estruturadas é, aproximadamente, 3,4 vezes maior que o número de páginas não-estruturadas; e (3) o tamanho do vocabulário dos formulários de um determinado domínio tende a convergir em um número pequeno de palavras que seguem uma distribução não-uniforme do tipo Zipf's Law [Newman 2005], o que significa que uma minoria de palavras são muito comuns enquanto muitas palavras ocorrem raramente.

Neste post, introduzimos o conceito de crawling para a Web como um todo. Para a Web Pública, apresentaremos sua forma mais comum de construção, políticas que influenciam o funcionamento e métricas de avaliação. Para a Web Escondida, discutiremos meios de encontrar uma rede escondida, de como preencher os formulários de acesso e como analisar a resposta destas consultas. O objetivo deste artigo é oferecer uma visão geral sobre técnicas existentes de crawling na Web, não realizamos quaisquer experimentos envolvendo as técnicas estudadas, nem tentamos identificar tendências futuras de evolução do crawling.

Crawling na Web Pública

A grosso modo, como pode ser visualizado na Figura 1, um crawler inicia com uma URL para uma página inicial. Esta página é copiada para a máquina local, processada e repassada a um outro sistema que a indexa, resume ou analisa seu conteúdo. Durante o processamento, os links nela contidos são colocados em uma lista de páginas a serem visitadas. Ao terminar a varredura, o crawler consulta a lista de páginas e repete o processo para uma nova URL [Cho 1998].

Image crawling

Figura 1: Comportamento genérico de um crawler na Web Pública.  

Devido ao grande volume de informações, um mecanismo de crawling precisa priorizar seus downloads de páginas ou processar e armazenar apenas as partes mais importantes destas páginas. Até mesmo grandes motores de busca cobrem apenas uma pequena porção da Web Pública. Em estudo por Lawrence and Giles [2000] mostrou que, em 1999 nenhum motor de busca indexava mais do que 16% da Web. Mudanças contínuas e imprevisíveis nas páginas já indexadas obrigam o crawler a revisitá-las frequentemente. O comportamento de um crawler é, então dado por uma combinação de políticas: (i) política de seleção, que diz quais páginas devem ser analisadas; (ii) política de revisitação, que diz quando verificar por mudanças nas páginas; (iii) política de cordialidade, que evita sobrecarga nos sítios visitados; e (iv) a política de paralelização que coordena a distribuição dos crawlers de uma rede. Cada uma destas políticas é foco de pesquisas independentes e é detalhada nas sub-seções seguintes.

Política de Seleção de Páginas

Como o crawler baixa apenas uma parte da Web, é desejável que esta parte contenha as páginas mais relevantes e não apenas um conjunto randômico de sítios, fato que requer uma métrica para priorizar as páginas. A importância de uma página dada é função de sua qualidade, popularidade em termos de links e visitantes e até mesmo da composição de sua URL. Cho et al. [1998] definiu métricas de importância para páginas da Web e realizou experimentos de performance com várias políticas de seleção. A ordenação de páginas a visitar foi feita por um algoritmo de busca em largura, um que contava referências e outro que calculava um PageRank [Brin and Page 1998] parcial. A ordenação por PageRank da página teve uma maior cobertura das páginas importantes até um momento K do que seus concorrentes em todos os casos.

Alguns crawlers tem o objetivo de baixar tantas páginas quando possível de um único sítio. Cothey [2004] introduziu o conceito de path-ascending crawler, que deriva caminhos plausíveis a partir de uma URL. Por exemplo, dado uma URL semente como http://site.com/modulo/submodulo/page.html, o crawler tentará baixar páginas em /, em / modulo1 e / modulo1 / submodulo, a fim de descobrir páginas não referenciadas. Este tipo de crawler também é conhecido como Harvester, porque geralmente tem objetivo de encontrar todo o conteúdo de um sítio, como por exemplo, coleção de fotos em uma galeria [Stamatakis et al. 2003].

Crawlers que se focam em um tópico ou buscam páginas de tópicos semelhantes são chamados de focused crawler ou topical crawlers [Menczer 1997, Menczer and Belew 1998, Chakrabarti and Dom 1999]. O principal problema do crawling focado é que ele precisa fazer o download de todas as páginas para depois analisar a similaridade ou o contexto comum entre cada par delas. Um resultado prévio pode ser calculalo pelas âncoras dos links [Pinkerton 1994], mas esta técnica fica limitada a um bom código HTML. A performance de um crawling focado depende muito do detalhe das descrições dos links e acaba usando os motores de pesquisa tradicionais para prover pontos de entrada em suas avaliações na Web.

Política de Revisitação

A política de revisitação de páginas estima quando cada página será atualizada e inclui URLs na lista de páginas a visitar do crawler. Uma boa política deve manter as páginas atualizadas no indexador sem sobrecarregar a lista de páginas a visitar.

As funções mais usadas neste tipo de política são a atualidade e a idade [Cho 2000]. Atualidade é uma medida binária que indica quando a cópia local está ou não atualizada. A idade é uma medida que indica a diferença de tempo entre a data do download e a última atualização da página, se esta for maior que a data de download. Se não houver atualização na página, a medida de idade é zero. Apesar de semelhates, estas métricas não são iguais. Um crawler pode ter como objetivo uma quantidade pequena de páginas desatualizadas [Coffman 1998] ou ter a médida de idade das páginas desatualizadas o mais baixo possível.

Duas políticas simples para revisitação foram estudadas por Cho e Garcia-Molina [2003]: (i) política uniforme, que revisita todas as páginas na coleção com a mesma frequência, desconsiderando então as diferentes frequências de atualização; e (ii) política proporcional, que revisita páginas na mesma quantidade de sua taxa de atualização, ou seja, páginas que mudam mais rapidamente são visitadas mais frequentemente. Surpreendentemente, a política uniforme foi superior a proporcional nos dois testes realizados, um sobre uma web simulada e outra numa web real. A explicação é que quando uma página muda frequentemente, o cralwer gasta tempo tentando acompanhá-la e acaba deixando outras páginas desatualizadas.

Política de Cordialidade

O consumo de banda e processamento de um sítio da Web devem ser respeitados. Se os crawlers requisitarem muitas páginas por segundo ou baixarem arquivos grandes, os servidores podem atingir seu limite de banda, de tráfego, de conexões, de threads do sistema operacional, derrubando a conexão, ou podem levar muito tempo para responder. Em todos os casos, a falha de comunicação diminui a performance do crawling e dificulta o acesso de usuários humanos ao sítio.

Na solução tradicional, o proprietário do sítio informa ao crawler quais sítios ele deve visitar e com que frequência através do padrão Robots Exclusion [Koster 1996], um conjunto de normas de comunicação em forma de arquivo texto. O crawler deve suportar este protocolo e seguir as orientações dele para que não prejudique a comunicação com o sítio.

A primeira proposta de intervalo entre as conexões num mesmo sítio foi feito por Koster [Koster 1993] e foi de 60 segundos. No entanto, considerando um sítio com 100.000 páginas, numa conexão perfeita: zero de latência e banda infinita; levaria 2 meses para o crawler indexar todas as páginas do sítio. Outros estudos indicam 1 [Dill et al. 2001], 10 [Cho 2000] e 15 [Baeza-Yates and Castillo 1998] segundos como intervalo de acesso. O crawler Mercator [Heydon and Najork 1999] aguarda 10 segundos depois do fim do download para iniciar o download da próxima página. Thelwall and Stuart [2006] defendem que para um melhor custo benefício, o crawler deve considerar aspectos étnicos dos sítios onde procura por informação.

Política de Paralelização

Enfim, a última política trata sobre a divisão dos sítios entre os crawlers de uma rede ou entre as várias instâncias de crawler numa mesma máquina. O objetivo é maximizar a taxa de download e minimizar os custos da paralelização, evitando downloads repedidos da mesma página. Por exemplo, sem uma política de sincronização, dois crawlers rodando em paralelo podem adicionar em suas respectivas listas de páginas a visitar a mesma URL.

Nesta área, as políticas podem ser dividas em duas grandes categorias que indicam o modo de associar a leitura de uma URL a um determinado crawler: (i) associação dinâmica, onde há um coordenador distribuindo as URLs entre os crawlers existentes e efetuando balanceamento de carga entre eles e (ii) associação estática, onde os crawlers sabem quais URLs lhes pertencem [Cho and Garcia-Molina 2002]. Na primeira, a lista de sítios a visitar é centralizada no coordenador e este é o gargalo do sistema. Porém o coordenador pode evitar que os crawlers fiquem parados ou baixando sítios irrelevantes. Na segunda categoria, os crawlers calculam um identificador a partir da URL ou do título do sítio e, se o resultado não for igual ao do crawler atual, eles enviam esta URL para o crawler responsável por ela. A lista de páginas a visitar é independente por crawler, não há coordenador, mas há troca de URLs entre os eles.

Crawling na Web Escondida

A figura 2 ilustra o funcionamento de um crawler genérico para a Web Escondida [Raghavan and Garcia-Molina 2001]. O crawler obtém um hiperdocumento com um formulário e constrói uma representação interna para este formulário. Uma base de dados com informações específicas sobre como preencher os campos do formulário obtido é consultada. É feita, então, a atribuição de valores de submissão a cada um dos campos e o formulário é submetido. A resposta da submissão é, por sua vez, analisada e o resultado dessa análise pode ser utilizado como parâmetro de ajuste para futuras submissões, com o objetivo de melhorar o desempenho do crawler.

Figura 2: Comportamento genérico de um crawler na Web Escondida.

De acordo com esse comportamento, podemos identificar os seguintes desafios associados ao crawling na Web Escondidada: (1) o encontro de formulário que constituam pontos de entrada para a Web Escondida; (2) o preenchimento e a submissão desses formulários; e, finalmente, (3) o processamento da resposta da submissão desses formulários. Cada um desses desafios é discutido nas próximas subseções.

Encontro de formulários que constituam pontos de entrada

Técnicas de Best-First / Focused Crawling [Chakrabarti and Dom 1999], podem ser utilizadas para o encontro de páginas contendo formulários na Web Pública [Barbosa and Freire 2007a]. Técnicas de classificação de formulários, por sua vez, são utilizadas para decidir quais dos formulários encontrados na Web Pública são de fato pontos de entrada para Web Escondida [Kushmerick 2003, Barbosa and Freire 2007b].

Normalmente, são dois os classificadores utilizados para formulários: (1) os que identificam formulários de consulta e (2) os que identificam os formulários pertencentes a um determinado domínio (e.g dados de imóveis, de esportes, de roupas). A maioria desses classificadores usam técnicas de Aprendizado de Máquina [Mitchel 1997] para realizar sua tarefa. Por exemplo, a técnica de Barbosa e Freire [2007b] propõe a combinação de 2 classificadores para formulários encontrados na Web. O primeiro classificador tem o objetivo de identificar se um formulário é de consulta e leva em consideração apenas a estrutura dos mesmos (e.g. número de caixas de texto, número de listas de seleção, existência da palavra " busca " ou algum de seus sinônimos). Os experimentos realizados pelos autores da técnica mostram que formulários de consulta apresentam em geral uma estrutura diferente, com um maior número de certos elementos, como caixas de texto, por exemplo. Além disso, os experimentos mostram que esse classificador é independente de domínio, muito provavelmente pelo fato de não levar em consideração o conteúdo textual dos formulários. Foram feitos experimentos com 4 técnicas de Aprendizado de Máquina: SVM , C4.5 , Naïve Bayes e Perceptron Multi-Camada ; constatando-se que a técnica de árvores de decisão C4.5 apresentou a menor taxa de erro. O segundo classificador utilizado tem o objetivo de identificar quais dos formulários que passaram pelo filtro do primeiro classificador pertencem a um determinado domínio. A característica relevante para esse classificador foi definida como sendo o conteúdo textual dos rótulos do formulário. Para esse classificador, foram feitos experimentos com 2 técnicas de Aprendizado de Máquina: SVM e C4.5 ; constatando-se que a técnica de SVM foi a que apresentou a menor taxa de erro.

Preenchimento e submissão de formulários

Preencher um formulário HTML automaticamente é uma tarefa difícil, pois formulários foram feitos para serem utilizados por pessoas e não por máquinas. Formulários não possuem uma estrutura rígida e suas peculiaridades não carregam, necessariamente, qualquer tipo de semântica. No entanto, observações empíricas mostram que, normalmente, formulários seguem certos padrões visuais, com algum tipo de alinhamento (vertical ou horizontal) e proximidade entre rótulos e seus respectivos elementos (e.g. caixas de texto e listas de seleção). É na suposta existência desses padrões que as técnicas de associação de rótulo com elementos em formulários se baseiam [Raghavan and Garcia-Molina 2001]. Por exemplo, a técnica de He et al. [He et al. 2004] representa um formulário como uma palavra que obedeça à expressão regular (T * E * l *) *, onde T representa um rótulo, E um elemento e a barra (l) uma quebra de linha. Então, para cada caracter E da palavra, representante de um elemento no formulário, tenta-se encontrar um rótulo localizado até duas linhas antes de acordo com as seguintes heurísticas: (1) finalização de rótulo com dois pontos; (2) similaridade textual entre o rótulo e o nome do elemento; (3) distância visual entre um elemento e seu rótulo (prioridade maior para rótulos localizados na mesma linha do elemento, seguido de prioridade para rótulos alinhados verticalmente com o elemento).

Uma vez associados os rótulos aos seus respectivos elementos em um formulários, o problema passa a ser a atribuição de valores para a submissão do formulário. Não apenas valores válidos precisam ser escolhidos, mas valores que permitam a obtenção do maior número de resultados relevantes para o crawling que se está realizando. É importante também que o número de submissões do formulário seja o menor possível, visto que submissões HTTP na Web são normalmente operações caras. Assim, por exemplo, é necessário que uma caixa de texto rotulada com a string " UF " em formulário obtido de uma loja virtual brasileira seja preenchida com um nome válido de unidade federativa brasileira (e.g. RS, SC) e uma caixa de texto de nome de produto seja preenchida com um nome válido. A maioria dos preenchedores automáticos de formulários fazem uso de ontologias próprias ao domínio do crawling executado [Palmieri Lage et al. 2004]. Por exemplo, a técnica de Raghavan e Garcia-Molina [Raghavan and Garcia-Molina 2001] utiliza uma tabela denominada Lable Value Set (LVS). Cada linha da LVS é uma dupla (L, V), onde L é o rótulo e V é o conjunto de valores fuzzy associado a L. A cada um dos valores de V é atribuído um peso no intervalo [0,1] de forma que cada um desses valores possa ser atribuído a um elemento E de um formulário de forma ordenada de acordo com o seu peso, se o rótulo de E casar com L. O casamento de rótulos de E com os elementos L das linhas da LVS é feito através do algoritmo de casamento aproximado de strings Block Edit Distance [Lopresti and Tomkins 1997], cujos resultados são comparados com limiares passados como parâmetro de execução do sistema. Um formulário só é submetido se apresentar um número mínimo parametrizado de campos e possuir no mínimo um casamento para cada um de seus campos de cujos elementos sejam caixas textuais.

Processamento da resposta da submissão de formulários

O processamento da resposta da submissão de formulários depende do objetivo do crawling realizado. Um objetivo possível pode ser a indexação de palavras sem preocupações com a semântica das mesmas, como ocorre nos motores de busca populares da Web (e.g. Google, Yahoo!). Nesse caso, técnicas de Recuperação de Informações   [Baeza-Yates et al. 1999] podem ser aplicadas. Outro objetivo possível pode ser a indexação semântica das informações encontradas nos hiperdocumentos atrás dos formulários, que, como dito anteriormente, são, em sua maioria, documentos semi-estruturados. Por exemplo, uma indexação semântica poderia ser aplicada a hiperdocumentos obtidos a partir de um crawling focado em detalhes de imóveis obtidos a partir de submissão de formulários de sítios de imobiliárias na Web. Uma indexação desse tipo permitiria, por exemplo, que resultados com imóveis com 200 metros quadrados de área fossem retornados para uma consulta por imóveis com área entre 100 e 300 metros quadrados. Semelhantemente, uma indexação desse tipo permitiria que resultados com terrenos com mais de 10.000 metros quadrados fossem retornados para uma uma consulta por terrenos com área maior que 1 hectare. Nesse caso, técnicas de Extração de Dados [Laender et al. 2002] podem ser aplicadas.

As principais técnicas de Extração de Dados conhecidas podem ser divididadas em duas classes: (1) etiquetamento de hiperdocumentos baseado em heurísticas, no uso de bases de conhecimentos genéricas ou específicas e no uso de ontologias; e (2) wrapping (mecanismo especializado em extrair informações estruturadas ou semi-estruturadas a partir de hiperdocumentos) com ou sem uso de aprendizado de máquina. Dill et al. [2003] propõem uma de técnica da primeira classe citada, em que é realizada a anotação semântica de hiperdocumentos de forma automática, fazendo-se uso de heurísticas e uma base de conhecimento genérica. Nessa proposta foi definido um algoritmo baseado em taxonomias que elimina a ambigüidade de textos escritos em linguagem natural. Baumgartner et al. [2001] propôs uma de técnica da segunda classe, em que é feita a geração semi-automática de wrappers capazes de gerar XML a partir de HTML, fazendo-se uso de uma interface gráfica e de uma linguagem de conversão própria, chamada Elog.

Considerações Finais

Este artigo resumiu os conceitos de Web Pública e Web Escondida, caracterizando o conteúdo dessas duas grandes regiões da Web. Foram apresentados os conceitos e os desafios associados ao crawling na Web Pública e na Web Escondida. Além disso, foram descritas algumas técnicas que refletem o atual do estado da arte do crawling na Web.

Como o objetivo deste artigo é apenas oferecer uma visão geral sobre técnicas de crawling na Web, não foram realizados quaisquer experimentos envolvendo as técnicas estudadas. Tampouco tentamos identificar tendências futuras de evolução do crawling na Web.

Referências Bibliográficas

Baeza-Yates and Castillo 1998
Baeza-Yates, R. and Castillo, C. (1998).
Balancing volume, quality and freshness in Web crawling.
In In Soft Computing Systems - Design, Management and Applications , pages 565-572, Santiago, Chile. IOS Press Amsterdam.

Baeza-Yates et   al. 1999
Baeza-Yates, R., Ribeiro-Neto, B., et   al. (1999).
Modern information retrieval .
ACM press New York.

Barbosa and Freire 2007a
Barbosa, L. and Freire, J. (2007a).
An adaptive crawler for locating hidden-Web entry points.
In Proceedings of the 16th international conference on World Wide Web , pages 441-450. ACM New York, NY, USA.

Barbosa and Freire 2007b
Barbosa, L. and Freire, J. (2007b).
Combining classifiers to identify online databases.
In Proceedings of the 16th international conference on World Wide Web , pages 431-440. ACM New York, NY, USA.

Baumgartner et   al. 2001
Baumgartner, R., Flesca, S., and Gottlob, G. (2001).
Visual web information extraction with lixto.
In Proceedings of the international conference on very large databases , pages 119-128.

Bergman 2001
Bergman, M. (2001).
The deep web: Surfacing hidden value.
Journal of Electronic Publishing , 7 (1): 07-01.

Brin and Page 1998
Brin, S. and Page, L. (1998).
The anatomy of a large-scale hypertextual Web search engine.
In Proceedings of the seventh international conference on World Wide Web 7 , pages 107-117.

Chakrabarti and Dom 1999
Chakrabarti, S., v. d. B.   M. and Dom, B. (1999).
Focused crawling: a new approach to topic-specific web resource discovery.
Computer Networks , 31:1623 - 1640.

Chang et   al. 2004
Chang, K., He, B., Li, C., Patel, M., and Zhang, Z. (2004).
Structured databases on the web: Observations and implications.
ACM SIGMOD Record , 33 (3): 61-70.

Cho 1998
Cho, J.; Garcia-Molina, H. P. L.   C. (1998).
Efficient Crawling Through URL Ordering.
In Seventh International World-Wide Web Conference , pages 107-117, Brisbane, Australia.

Cho and Garcia-Molina 2003
Cho, J. and Garcia-Molina (2003).
Effective page refresh policies for web crawlers.
ACM Transactions on Database Systems , 28 (4).

Cho and Garcia-Molina 2000
Cho, J. and Garcia-Molina, H. (2000).
The evolution of the web and implications for an incremental crawler.
In Proceedings of the 26th International Conference on Very Large Data Bases , pages 200-209.

Cho and Garcia-Molina 2002
Cho, J. and Garcia-Molina, H. (2002).
Parallel crawlers.
In WWW ' 02: Proceedings of the 11th international conference on World Wide Web , pages 124-135, New York, NY, USA. ACM.

Cho 2000
Cho, J. H. G. - M. (2000).
Synchronizing a database to improve freshness.
In Proceedings of the 2000 ACM SIGMOD international conference on Management of data , volume   1, pages 117-128, Dallas, Texas, United States.

Coffman 1998
Coffman, E. G. Jr; Zhen   Liu, R. R.   W. (1998).
Optimal robot scheduling for Web search engines.
Journal of Scheduling , 1:15 - 29.

Cothey 2004
Cothey, V. (2004).
Web-crawling reliability.
Journal of the American Society for Information Science and Technology , 55 (14): 1228-1238.

Dill et   al. 2003
Dill, S., Eiron, N., Gibson, D., Gruhl, D., Guha, R., Jhingran, A., Kanungo, T., Rajagopalan, S., Tomkins, A., Tomlin, J., et   al. (2003).
SemTag and Seeker: Bootstrapping the semantic web via automated semantic annotation.
In Proceedings of the 12th international conference on World Wide Web , pages 178-186. ACM New York, NY, USA.

Dill et   al. 2001
Dill, S., Kumar, S.   R., McCurley, K.   S., Rajagopalan, S., Sivakumar, D., and Tomkins, A. (2001).
Self-similarity in the web.
In The VLDB Journal , pages 69-78.

He et   al. 2004
He, H., Meng, W., Yu, C., and Wu, Z. (2004).
Automatic integration of Web search interfaces with WISE-Integrator.
The VLDB Journal The International Journal on Very Large Data Bases , 13 (3): 256-273.

Heydon and Najork 1999
Heydon, A. and Najork, M. (1999).
Mercator: A scalable, extensible web crawler.
World Wide Web , 2:219 - 229.

Koster 1993
Koster, M. (1993).
Guidelines for robots writers.
http://www.robotstxt.org/wc/guidelines.html.

Koster 1996
Koster, M. (1996).
A standard for robot exclusion.
http://www.robotstxt.org/.

Kushmerick 2003
Kushmerick, N. (2003).
Learning to invoke Web forms.
Lecture notes in computer science , pages 997-1013.

Laender et   al. 2002
Laender, A., Ribeiro-Neto, B., da   Silva, A., and Teixeira, J. (2002).
A brief survey of web data extraction tools.
ACM Sigmod Record , 31 (2): 84-93.

Lawrence and Giles 2000
Lawrence, S. and Giles, C.   L. (2000).
Accessibility of information on the web.
Intelligence , 11 (1): 32-39.

Lopresti and Tomkins 1997
Lopresti, D. and Tomkins, A. (1997).
Block edit models for approximate string matching.
Theoretical Computer Science , 181 (1): 159-179.

Menczer 1997
Menczer, F. (1997).
ARACHNID: Adaptive Retrieval Agents Choosing Heuristic Neighborhoods for Information Discovery.
In Fisher, D., editor, Machine Learning: Proceedings of the 14th International Conference (ICML97) , Geneva, Switzerland.

Menczer and Belew 1998
Menczer, F. and Belew, R. (1998).
Adaptive Information Agents in Distributed Textual Environments.
In Sycara, K. and Wooldridge, M., editors, Proc. 2nd Intl. Conf. on Autonomous Agents (Agents ' 98). ACM Press , Geneva, Switzerland.

Mitchel 1997
Mitchel, T. (1997).
Machine learning.
Machine Learning , 48 (1).

Newman 2005
Newman, M. (2005).
Power laws, Pareto distributions and Zipf's law.
Contemporary physics , 46 (5): 323-352.

Palmieri   Lage et   al. 2004
Palmieri   Lage, J., da   Silva, A., Golgher, P., and Laender, A. (2004).
Automatic generation of agents for collecting hidden web pages for data extraction.
Data & Knowledge Engineering , 49 (2): 177-196.

Pinkerton 1994
Pinkerton, B. (1994).
Finding what people want: Experiences with the WebCrawler.
In Proceedings of the First World Wide Web Conference , volume   1, Geneva, Switzerland.

Raghavan and Garcia-Molina 2001
Raghavan, S. and Garcia-Molina, H. (2001).
Crawling the hidden web.
In In VLDB .

Stamatakis et   al. 2003
Stamatakis, K., Karkaletsis, V., and Paliouras, G. (2003).
Domain-specific web site identification: The crossmarc focused web crawler.
In In Proceedings of the 2nd International Workshop on Web Document Analysis (WDA 2003 , pages 75-78.

Thelwall and Stuart 2006
Thelwall, M. and Stuart, D. (2006).
Web crawling ethics revisited: Cost, privacy, and denial of service.
J. Am. Soc. Inf. Sci. Technol. , 57 (13): 1771-1779.

Posted in Jun 27, 2009 by Vitor Pamplona - Edit - History

Add New Comment

Your Name:


Write the code showed above on the text below.