0x00
Um rastreador de teias (também conhecido como aranha de teia, bot de teia, mais comumente chamado de caçador de teias na comunidade FOAF) é um programa ou script que automaticamente extrai informações sobre a World Wide Web de acordo com certas regras. Outros nomes menos usados incluem formigas, auto-índices, simuladores ou minhocas.
0x01
Simplificando, crawlers coletam dados de acordo com suas próprias regras, analisam os dados capturados e depois obtêm dados úteis para si mesmos.
0x02
A otimização de rastreadores web pode ser dividida em duas etapas:
1: Otimizar ao extrair dados;
2: Otimizar o processamento dos resultados de captação;
Hoje, estamos apenas falando sobre otimização no processo de scraping!
0x03
Resumi alguns pontos sobre a otimização no processo de rastreamento:
1: Pode ser otimizado no endereço físico, por exemplo: o servidor de recursos alvo é o host Tencent Cloud em Xangai, tentamos escolher o servidor na mesma região, ou seja, o servidor na região de Xangai, não escolhemos o servidor em Pequim, Qingdao e outras regiões, mas também tentamos escolher o servidor na mesma sala de computadores IDC, sabemos que esse site de recursos é o servidor da Tencent Cloud, tentamos colocar o rastreador no servidor Tencent Cloud, não no servidor Alibaba Cloud!
2: Escolha uma rede estável e rápida, geralmente crawlers têm altos requisitos de qualidade de rede, tente não usar a rede doméstica, escolha a rede da empresa ou compre um servidor para capturar dados.
3: Escolha uma linguagem de crawler mais eficiente, ouvi dizer que python é melhor em crawlers, mas não usei e vou testar depois, hoje, eu explico principalmente na linguagem .net.
0x04
Para coisas como compras rápidas, os requisitos para a velocidade de captura são altos, pode ser descrito como uma questão de tempo, cedo para obter os dados, aumentando a chance de captura, a seguir: escrevi uma demo com o console, o teste de captura dos dados deste site, como mostrado na figura abaixo:
(Quanto menor o tempo, mais rápido é)
A classificação dos dados acima:1: Código otimizado nativamente, 2: Código nativo, 3: DLLs plug-in de terceiros (pacotes)
0x05
Por que plugins (pacotes) de terceiros demoram mais? Plug-ins de terceiros são, na verdade, um grande número de encapsulamentos de código nativo, um grande número de julgamentos lógicos e relativamente versáteis, o que pode levar a uma velocidade de rastreamento lenta.
Aqui está o código nativo:
O código nativo está apenas algumas linhas acima.O tempo médio ainda é de 184 milissegundos,Quanto mais simples o código, mais difícil é otimizá-loVocê acha que como o código acima pode ser otimizado para alcançar um tempo médio de 99 milissegundos?A diferença de velocidade dobra!
0x06
Se o servidor de recursos alvo suportar compressão gzip, quando acessarmos o site e o navegador solicitar o site, o cabeçalho da requisição terá os seguintes parâmetros:
Parâmetros do cabeçalho de resposta:
Introdução à "Aceitação-Codificação": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
Em termos simples:
O cliente diz:Eu apoio o algoritmo de compressão "gzip, flate, sdch, br", você pode usar o que quiser ao devolver dados.
O garçom disse:Eu costumo suportar o algoritmo de compressão gzip, então vou usar o algoritmo gzip para comprimir os dados para você
O cliente diz:Ok, então vou descriptografar os dados recebidos com o algoritmo gzip
Algoritmo GZIP, que pode comprimir os dados transmitidos e reduzir significativamente o conteúdo transmitido, para que a eficiência das solicitações seja melhorada, então o código otimizado é o seguinte:
Embora seja um detalhe pequeno, pode-se dizer que a eficiência dobra! É equivalente aos dados que você coletou em dois dias, e agora pode ser coletado em 1 dia, e este artigo é dedicado a amigos que aprendem a engatinhar.
Nota: O algoritmo de compressão gzip não tem nada a ver com a linguagem de programação!
Por fim, anexe o código-fonte:
Turistas, se quiserem ver o conteúdo oculto deste post, por favor Resposta
|