Rede neural artificial (perceptron) aliada a índices de vegetação na ...
Índices e Rastejamento na Web
-
Upload
alexandre-duarte -
Category
Education
-
view
304 -
download
0
Transcript of Índices e Rastejamento na Web
![Page 1: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/1.jpg)
Aula 13: Índices e rastejamento (crawling) web
Alexandre [email protected]
1 111
Ordenação e Recuperação de Dados
![Page 2: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/2.jpg)
Revisão da última aula Pesquisa na Web Spam Tamanho da Web Deteção de duplicatas
Usar o Coeficiente de Jaccard para calcular a similaridade entre dois documentos
2
![Page 3: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/3.jpg)
Aula de Hoje Rastejamento
3
![Page 4: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/4.jpg)
Operação básica de um crawler Começar com um conjunto conhecidos
de URLs (“raiz”) Recuperar e fazer parsing
Extrair as URLs referenciadas Colocar as URLs em uma fila
Recuperar cada URL da fila e repetir
Sec. 20.2
4
![Page 5: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/5.jpg)
Retrado do crawling
Web
URLs na Fronteira
Web desconhecida
Páginasraíz
URLs recuperadase processadas
Sec. 20.2
5
![Page 6: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/6.jpg)
Algumas complicações desse retrato Crawling na web não pode ser feito com uma única máquina
Todos os passos descritos são distribuídos
Páginas maliciosas Spam Armadilhas– incluído páginas geradas dinamicamente
Mesmo páginas não maliciosas podem ser desafiadoras Latência/largura de banda de servidores remotos varia Profundidade
Quão “profundo” deve-se ir numa hierarquia de URLs? Espelhos e duplicatas de sites Educação – não borbardear um servidor muito frequentemente
Sec. 20.1.1
6
![Page 7: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/7.jpg)
O que todo crawler precisa fazer
Ser Educado: Respeitar considerações implícitas e explicitas Só processar páginas permitidas Respeitar o robots.txt (mais sobre isso jajá)
Ser Robusto: Ser imune a armadilhas e comportamento malicioso de servidores web
Sec. 20.1.1
7
![Page 8: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/8.jpg)
O que todo crawler deve fazer Se capaz de operar de forma distribuída:
projetado para rodar em várias máquinas distribuídas
Ser escalável: projetado para aumentar a taxa de processamento com a adição de mais máquinas
Desempenho/eficiência: permitir uso total dos recursos de processamento e rede disponíveis
Sec. 20.1.1
8
![Page 9: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/9.jpg)
O que todo crawler deve fazer
Recuperar as páginas de “maior qualidade” primeiro
Operação Contínua: Continuar a recuperar cópias atualizadas de páginas previamente recuperadas
Extensibilidade: Adaptação a novos formatos de dados, protocolos, etc
Sec. 20.1.1
9
![Page 10: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/10.jpg)
Retrato do crawling atualizado
URLs recuperadase processadas
Web desconhecida
Páginas Raiz
URLs na Fronteira
Crawling thread
Sec. 20.1.1
10
![Page 11: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/11.jpg)
URLs na fronteira
Podem incluir várias páginas de um mesmo servidor
Precisa evitar tentar recuperar todas elas ao mesmo tempo
Precisa tentar manter todos os crawling threads ocupados
Sec. 20.2
11
![Page 12: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/12.jpg)
Educação Explicita e Implícita
Educação explicita: especificações dos webmasters sobre que porções do site podem ser recuperadas robots.txt
Educação implícita: mesmo sem especificação, evitar visitar um site muito frequentemente
Sec. 20.2
12
![Page 13: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/13.jpg)
Robots.txt Protocolo criado em 1994 para dar aos crawlers
(“robôs”) acesso limitado a um website www.robotstxt.org/wc/norobots.html
Website anunciam seus requisitos sobre o que pode e não pode ser recuperado
Para um servidor, criar um arquivo /robots.txt Este arquivo especifica as restrições de acesso
Sec. 20.2.1
13
![Page 14: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/14.jpg)
Exemplo de Robots.txt Nenhum robô deve visitar URLs começando com
"/yoursite/temp/", exceto o robô chamado “searchengine":
User-agent: *
Disallow: /yoursite/temp/
User-agent: searchengine
Disallow:
Sec. 20.2.1
14
![Page 15: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/15.jpg)
Etapas de processamento durante o crawling Escolher uma URL da fronteira Recuperar o documento correspondente Fazer parse do documento
Extrair links para outros documentos (URLs)
Checar se a URL tem conteúdo já visto Se não, adicionar ao índices
Para cada URL extraída Garantir que ela passa em alguns filtros de teste para URLs Checar se ela já está na fronteira (eliminação de URLs
duplicadas)
Ex., só processar .edu, obedecer robots.txt, etc.
Qual?
Sec. 20.2.1
15
![Page 16: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/16.jpg)
Arquitetura básica
WWW
DNS
Parse
Contentseen?
DocFP’s
DupURLelim
URLset
URL Frontier
URLfilter
robotsfilters
Fetch
Sec. 20.2.1
16
![Page 17: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/17.jpg)
DNS (Domain Name Server) Um serviço de consulta na Web
Dada uma URL, recuperar seu endereço IP Serviço oferecido por um conjunto distribuído de
servidores, portanto, latências de consulta podem ser altas (mesmo de segundos)
Implementações comuns de consultas a DNS nos Sistemas Operacionais são bloqueantes: apenas uma consulta aberta por vez
Soluções Cache de DNS Batch DNS resolver – coleta as requisições e envia as
consultas de uma só vez
Sec. 20.2.2
17
![Page 18: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/18.jpg)
Parsing: normalização de URL
Quando um documento recuperado é processado, alguns dos links são URLs relativas
Ex., http://en.wikipedia.org/wiki/Main_Page tem um link relativo para /wiki/Wikipedia:General_disclaimer que aponta para a URL absoluta http://en.wikipedia.org/wiki/Wikipedia:General_disclaimer
Durante o parsing é preciso normalizar (expandir) URLs relativas
Sec. 20.2.1
18
![Page 19: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/19.jpg)
Conteúdo já visto?
Duplicação está em todo lugar na web Se a página recuperada já está no
índice, deve ser ignorada Isso é verificado utilizando assinaturas
de documentos
Sec. 20.2.1
19
![Page 20: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/20.jpg)
Filtros e robots.txt
Filtros – expressões regulares para URLs a serem (ou não) recuperadas
Uma vez que o arquivo robots.txt de um site é recuperado, ele não precisa ser recuperado repetivas vezes Fazer isso consume largura de banda e
afeta os servidores web Fazer cache dos arquivos robots.txt
Sec. 20.2.1
20
![Page 21: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/21.jpg)
Eliminação de URL duplicadas
Para uma recuperação não-contínua, testar para ver se a URL extraída+filtrada já está na fronteira
Para uma recuperação contínua, ver detalhes sobre a implementação da fronteira
Sec. 20.2.1
21
![Page 22: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/22.jpg)
Distribuíndo o crawler Executar vários threads do crawler, dentro de
diferentes processos, potencialmente em diferentes nós Nós distribuídos geograficamente
Particionar os servidores sendo processados entre os nós Partição baseada em hash
Como esses nós se comunicam e compartilham URLs?
Sec. 20.2.1
22
![Page 23: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/23.jpg)
Comunicação entre os nós Saída do filtro de URLs em cada nó é enviada para um
Eliminador de URLs Duplicadas do nó apropriado
WWW
Fetch
DNS
ParseContentseen?
URLfilter
DupURLelim
DocFP’s
URLset
URL Frontier
robotsfilters
Hostsplitter
Para outrosnós
Deoutrosnós
Sec. 20.2.1
23
![Page 24: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/24.jpg)
URLs na fronteira: duas principais considerações
Educação: não visitar um servidor web muito frequentemente
Atualização: recuperar algumas páginas mais frequentemente que outras Ex., páginas (como sites de notícias) cujos
conteúdos mudam frequentementeEstes objetivos estão em conflitos.(Ex., Filas de prioridade não são suficientes –
muitos dos links de uma página vão para o mesmo servidor, criando uma rajada de acessos a este servidor.)
Sec. 20.2.3
24
![Page 25: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/25.jpg)
Educação – desafios
Mesmo que restrinjamos a um único thread por host, ele ainda poderá ser visitado repetidas vezes
Heurística comum: inserir um intervalo entre duas consultas sucessivas a um mesmo servidor que seja >> que o tempo necessário para recuperar o documento da última vez
Sec. 20.2.3
25
![Page 26: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/26.jpg)
Back queue selector
B back queuesSingle host on each
Crawl thread requesting URL
URL na fronteira: Esquema de Mercator
Biased front queue selectorBack queue router
Prioritizer
K front queues
URLs
Sec. 20.2.3
26
![Page 27: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/27.jpg)
Fronteira de URLs de Mercator As URLs fluem do topo até a fronteira As filas da frente gerenciam a priorização As filas de trás garantem educação Cada fila é FIFO
Sec. 20.2.3
27
![Page 28: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/28.jpg)
Filas da Frente
Prioritizer
1 K
Biased front queue selectorBack queue router
Sec. 20.2.3
28
![Page 29: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/29.jpg)
Filas da Frente Prioritizer atribui uma prioridade de 1 a K para
cada URL Adiciona a URL à fila correspondente
Heurística para atribuição de prioridade Taxa de atualização observada nas recuperações
anteriores Específica da Aplicação (ex., “checar sites de
notícias mais frequentemente”)
Sec. 20.2.3
29
![Page 30: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/30.jpg)
Biased front queue selector Quando uma fila de trás solicita uma URL:
escolhe uma fila da frente de onde remover a URL
Esta escolha pode ser feita utilizando round robin ou utilizando alguma variante mais sofisticada Também pode ser aleatória
Sec. 20.2.3
30
![Page 31: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/31.jpg)
Filas de trás
Biased front queue selectorBack queue router
Back queue selector
1 B
Heap
Sec. 20.2.3
31
![Page 32: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/32.jpg)
Filas de trás
Cada fila é mantida não-vazia enquanto o processamento é realizado
Cada fila contém URLs de um único servidor Manter uma tabela mapeando servidores em
filas
Host name Back queue
… 3
1
B
Sec. 20.2.3
32
![Page 33: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/33.jpg)
Heap das filas de trás Uma entrada para cada fila de trás A entrada é o menor tempo te no qual o servidor
correspondente pode ser visitado novamente O menor tempo é determinado a partir do
Último acesso ao servidor Alguma outra heurística desejada
33
![Page 34: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/34.jpg)
Processamento das filas de trás
Um crawler thread a procura de uma URL para recuperar: Extrair a raiz do heap Recuperar a URL na cabeça da fila correspondente q (olhar a
tabela) Checar se a fila q esta vazia – em caso afirmativo obter uma
URL v das filas da frente se já existe uma fila de trás para o servidor de v, adicionar v à esta fila
e pegar outra URL das filas da frente, repetir Caso contrário, adicionar v a q
Quando q é não-vazia, criar uma entrada no heap para q
Sec. 20.2.3
34
![Page 35: Índices e Rastejamento na Web](https://reader033.fdocuments.net/reader033/viewer/2022060202/559ba1b31a28ab16158b4628/html5/thumbnails/35.jpg)
Número de filas de trás B Manter todos os threads ocupados mas
mantendo a educação Recomendação de Mercator: ter três vezes mais
filas que crawler threads
Sec. 20.2.3
35