01. Noções básicas do rastreador

1. Introdução ao rastreador Python

Os requisitos práticos dos rastreadores são muito fortes. Os rastreadores muitas vezes precisam rastrear o conteúdo de sites comerciais ou governamentais, e esses sites podem ser atualizados a qualquer momento.Além disso, motivos de rede e mecanismos anti-rastreadores de sites também interferirão na demonstração do código do rastreador.

1.1 O uso de rastreadores

Rastreador da Web : um programa que rastreia automaticamente informações da Internet de acordo com certas regras.

Em primeiro lugar, deixe-me perguntar: diz-se que agora é a "era do big data", então de onde vêm os dados?

1. 2 Direção de Aplicação

1, 2, 1 Personalize um mecanismo de pesquisa

Ao aprender rastreadores, você pode personalizar um mecanismo de pesquisa e obter uma compreensão mais profunda dos princípios de funcionamento da coleta de dados do mecanismo de pesquisa.

Alguns amigos esperam ter uma compreensão profunda do princípio de funcionamento dos rastreadores de mecanismos de pesquisa ou esperam poder desenvolver um mecanismo de pesquisa privado.Neste momento, é muito necessário aprender rastreadores. Simplificando, depois de aprendermos a escrever rastreadores, podemos usá-los para coletar automaticamente informações da Internet. Depois de coletá-las, podemos armazená-las ou processá-las adequadamente. Quando precisarmos recuperar certas informações, só precisamos recuperá-las. na informação recolhida.Para realizar uma pesquisa, é implementado um motor de pesquisa privado. Claro, precisamos projetar como rastrear informações, como armazená-las, como segmentar palavras, como calcular a correlação, etc. A tecnologia crawler resolve principalmente o problema de rastreamento de informações.

Otimização de SEO 1, 2, 2

Para muitos profissionais de SEO, o aprendizado de rastreadores pode fornecer uma compreensão mais profunda dos princípios de funcionamento dos rastreadores de mecanismos de pesquisa, para que eles possam realizar melhor a otimização de mecanismos de pesquisa. Como se trata de otimização de mecanismos de pesquisa, você deve ter um bom entendimento do funcionamento. princípios dos mecanismos de pesquisa. Claramente, você também precisa dominar os princípios de funcionamento dos rastreadores de mecanismos de pesquisa, para que, ao realizar a otimização de mecanismos de pesquisa, você possa conhecer a si mesmo e ao inimigo e ser vitorioso em todas as batalhas.

1, 2, 3 Análise de Dados

Na era do big

	在进行大数据分析或者进行数据挖掘的时候,数据源可以从某些提供数据统计的网站获得,也可以从某些文献或内部资料中获得,但是这些获得数据的方式,有时很难满足我们对数据的需求,而手动从互联网中去寻找这些数据,则耗费的精力过大。此时就可以利用爬虫技术,自动地从互联网中获取我们感兴趣的数据内容,并将这些数据内容爬取回来,作为我们的数据源,从而进行更深层次的数据分析,并获得更多有价值的信息。
1, 2, 4 Procurando emprego

Do ponto de vista do emprego, os engenheiros de esteiras são atualmente escassos e seus salários são geralmente altos, portanto, dominar essa tecnologia em profundidade é muito benéfico para o emprego.

	有些朋友学习爬虫可能为了就业或者跳槽。从这个角度来说,爬虫工程师方向是不错的选择之一,因为目前爬虫工程师的需求越来越大,而能够胜任这方面岗位的人员较少,所以属于一个比较紧缺的职业方向,并且随着大数据时代的来临,爬虫技术的应用将越来越广泛,在未来会拥有很好的发展空间。

1.3 Por que usar o rastreador Python

  1. PHP: PHP é a melhor linguagem do mundo! ! Mas não nasceu para fazer isso e não possui um suporte muito bom para processamento multithreading e assíncrono, e suas capacidades de processamento simultâneo são fracas. Crawler é um programa de ferramenta com requisitos relativamente altos de velocidade e eficiência. Diz-se que o PHP melhorou a eficiência, mas o ambiente da comunidade ainda não consegue acompanhar o Python.
  2. Java: O ecossistema é muito completo e é o maior concorrente dos crawlers Python. Mas a linguagem Java em si é complicada e possui uma grande quantidade de código. O custo da refatoração é relativamente alto e qualquer modificação causará um grande número de alterações no código. Os rastreadores geralmente precisam modificar o código da coleção. Afinal, a vida é curta. . . .
  3. C/C++: A eficiência operacional é incomparável. Mas os custos de aprendizagem e desenvolvimento são elevados. Pode levar mais de meio dia para escrever um pequeno programa rastreador. Resumindo em uma frase, por que não usar C++ para desenvolver programas rastreadores, porque isso fará seu cabelo cair e matará pessoas.
  4. Python: bela sintaxe, código conciso, alta eficiência de desenvolvimento e suporte a muitos módulos. Os módulos de solicitação HTTP e módulos de análise HTML relacionados são muito ricos. Existem também estruturas Scrapy e Scrapy-redis que tornam extremamente simples o desenvolvimento de rastreadores. E há recursos muito ricos.Além disso, Python também suporta assíncrona e também é muito amigável para programação de rede assíncrona. A direção futura é a programação de rede assíncrona, que é muito adequada para programas crawler! !
1, 3, 1 Um rastreador python

Use python para escrever um rastreador para rastrear URLs do Baidu

2. Réptil

2.1 Classificação dos rastreadores

2, 1, 1 réptil comum

Os rastreadores gerais da web são uma parte importante dos sistemas de rastreamento de mecanismos de pesquisa (Baidu, Google, Sogou, etc.). O objetivo principal é baixar páginas da Web na Internet para o computador local para formar um backup espelhado do conteúdo da Internet. Fornece suporte de pesquisa para mecanismos de pesquisa.

Como funcionam os motores de busca:

Adicione a descrição da imagem

  • Etapa 1: rastrear a página da web

Os mecanismos de pesquisa rastreiam dados de milhares de sites.

  • Etapa 2: armazenamento de dados

O mecanismo de pesquisa rastreia as páginas da web por meio de rastreadores e armazena os dados no banco de dados da página original (ou seja, a biblioteca de documentos). Os dados da página são exatamente iguais ao HTML obtido pelo navegador do usuário.

  • Etapa 3: forneça serviços de pesquisa e classificação de sites

O mecanismo de pesquisa executa várias etapas de pré-processamento nas páginas rastreadas pelo rastreador: segmentação de palavras chinesas, eliminação de ruído e processamento de índice.

Depois que o mecanismo de pesquisa organiza e processa as informações, ele fornece aos usuários serviços de recuperação de palavras-chave e exibe informações relevantes aos usuários. Eles serão classificados quando exibidos.

Limitações do mecanismo de pesquisa:

  • Os mecanismos de pesquisa rastreiam toda a página da web, não informações específicas e detalhadas.

  • Os mecanismos de pesquisa não podem fornecer resultados de pesquisa específicos às necessidades do cliente.

2, 1, 2 Foco em rastreadores

Em resposta a essas situações de rastreadores gerais, a tecnologia de rastreadores focados é amplamente utilizada. Um rastreador focado é um programa rastreador da web "orientado para necessidades de assuntos específicos".A diferença entre ele e um rastreador de mecanismo de pesquisa geral é que o rastreador focado processará e filtrará o conteúdo ao rastrear páginas da web e tentará garantir que apenas o rastreamento seja relevantes para as necessidades. dados da página da web.

A próxima parte do nosso curso se concentrará nos rastreadores .

2. Protocolo de 2 robôs

​ Robots é um acordo entre o site e o crawler. Ele usa um texto simples e direto em formato txt para informar ao crawler correspondente as permissões permitidas. Em outras palavras, robots.txt é o primeiro arquivo a ser visualizado ao acessar o site no mecanismo de busca. Quando um spider de pesquisa visita um site, ele primeiro verifica se o robots.txt existe no diretório raiz do site. Se existir, o robô de pesquisa determinará o escopo de acesso com base no conteúdo do arquivo; se o arquivo existir não existir, todos os spiders de busca poderão acessar todas as páginas do site que não sejam protegidas por senha. --Enciclopédia Baidu

O protocolo Robots também é chamado de protocolo crawler, protocolo robot, etc. O nome completo é "Protocolo de exclusão de robôs". O site usa o protocolo Robots para informar aos mecanismos de pesquisa quais páginas podem ser rastreadas e quais páginas não podem ser rastreadas , por exemplo:

Taobao: https://www.taobao.com/robots.txt

Baidu: https://www.baidu.com/robots.txt

3. Solicitação e resposta

A comunicação HTTP consiste em duas partes: mensagem de solicitação do cliente e mensagem de resposta do servidor.

O processo do navegador enviando uma solicitação HTTP:

Insira a descrição da imagem aqui

  1. Quando inserimos o URL https://www.baidu.com no navegador, o navegador envia uma solicitação de solicitação para obter o arquivo html de https://www.baidu.com e o servidor envia o objeto do arquivo de resposta de volta para o navegador.
  2. O navegador analisa o HTML na resposta e descobre que ele faz referência a muitos outros arquivos, como arquivos de imagens, arquivos CSS e arquivos JS. O navegador enviará automaticamente a solicitação novamente para obter imagens, arquivos CSS ou arquivos JS.
  3. Quando todos os arquivos forem baixados com sucesso, a página da web será exibida completamente de acordo com a estrutura da sintaxe HTML.

Na verdade, quando rastreamos dados aprendendo a tecnologia crawler, é também um processo de solicitação de dados do servidor e obtenção de dados de resposta do servidor.

4. Ferramentas de desenvolvedor do Chrome

​ Quando rastreamos sites diferentes, a implementação de cada página do site é diferente e precisamos analisar cada site. Existem alguns métodos de análise geral? Deixe-me compartilhar minha “rotina” de rastreamento e análise. Em um determinado site, a ferramenta que mais uso para analisar páginas e rastrear dados é o Chrome Developer Tools .

	Chrome 开发者工具是一套内置于 Google Chrome 中的 Web 开发和调试工具,可用来对网站进行迭代、调试和分析。因为国内很多浏览器内核都是基于 Chrome 内核,所以国产浏览器也带有这个功能。例如:UC 浏览器、QQ 浏览器、360 浏览器等。

A seguir, vamos dar uma olhada em alguns dos recursos mais impressionantes das ferramentas para desenvolvedores do Chrome.

4. Painel 1 Elementos (Elementos)

​Através do painel Elemento, podemos visualizar a tag onde está localizado o conteúdo de renderização da página que queremos capturar, quais atributos CSS usar (por exemplo: class="middle"), etc. Por exemplo, se eu quiser capturar o título dinâmico na minha página inicial do Zhihu, clique com o botão direito na página e selecione "Inspecionar" para entrar no painel de elementos das Ferramentas do desenvolvedor do Chrome.

Através deste método, podemos localizar rapidamente um nó DOM na página e, em seguida, extrair as instruções de análise relevantes. Mova o mouse para o nó, clique com o botão direito do mouse e selecione "Copiar" para copiar rapidamente as instruções de análise de bibliotecas de análise de conteúdo, como Xpath e seletor CSS.

4. 2 Painel do console

O painel do console (Console) é uma janela separada usada para exibir informações de objetos JS e DOM.

No tópico de descriptografia js do curso do rastreador, a função do console será usada para depurar e executar o código js.

4.3 Painel de Recursos (Fonte)

Todos os arquivos de origem da página da web atual podem ser visualizados na página Painel de Recursos (Fonte).

Na coluna da esquerda você pode ver que os arquivos de origem são exibidos em uma estrutura de árvore.
Use este local na coluna do meio para depurar o código js.
À direita está a faixa de depuração do ponto de interrupção.
Na descriptografia js subsequente, a função do painel de recursos será usada.

4. 4 Painel de rede (Rede)

O painel Rede registra informações sobre cada operação de rede na página, incluindo dados detalhados demorados, solicitações HTTP e cabeçalhos de resposta, cookies e muito mais. Isso é o que normalmente chamamos de captura de pacotes.

4, 4, 1 barra de ferramentas

Pare de gravar o log da rede

Por padrão, desde que as ferramentas do desenvolvedor estejam ativadas, todas as solicitações de rede serão registradas. Claro, os registros são exibidos no painel Rede. Vermelho significa ligado, cinza significa desligado.

Claro

Limpe todos os dados. Cada vez que você reanalisa, você precisa limpar os dados anteriores.

Filtro

Filtro de pacotes. Vermelho significa aberto, azul significa fechado.

Muitas vezes é usado para filtrar algumas solicitações HTTP, como filtrar solicitações assíncronas, imagens, vídeos, etc. iniciadas usando Ajax.

O maior painel é chamado Tabela de Solicitações , que lista todas as solicitações HTTP recuperadas. Por padrão, esta tabela é classificada cronologicamente, com os recursos mais antigos no topo. Clique no nome do recurso para exibir mais informações.

Parâmetros da tabela de solicitações:

  • **todos:* Todos os dados da solicitação (imagens, vídeos, áudios, códigos js, códigos css )
  • **XHR: **A abreviatura de XMLHttpRequest é o núcleo da tecnologia ajax. Ele carrega dinamicamente conteúdo que é analisado com frequência.
  • **CSS: **arquivo de estilo css
  • **JS: **Arquivo JavaScript, que é uma página frequentemente analisada pela descriptografia js
  • Img: arquivo de imagem de imagens
  • Fonte: arquivo de fonte (fonte reversa)
  • DOC: Documento, conteúdo do documento
  • **WS: **WebSocket, comunicação de dados de soquete no lado da web, geralmente usado para alguns dados atualizados em tempo real
  • **Manifesto:** Exibe recursos armazenados em cache por meio do manifesto. Incluir muitas informações, como arquivos de biblioteca js, exibirá o endereço, tamanho e
    tipo do arquivo;

Procurar

Na caixa de pesquisa, qualquer conteúdo que apareça em ALL pode ser pesquisado diretamente. Recuperação de dados comumente usada e descriptografia JS

Preservar registro

Manter um registro. Ao analisar conteúdo que salta em múltiplas páginas, não deixe de verificá-lo, caso contrário, quando ocorrer um novo salto na página, todos os dados históricos serão apagados. Mantenha registros, eles devem ser verificados ao fazer rastreadores

Desativar cache

Limpe o cache dos arquivos JavaScript e CSS para obter os mais recentes.

Ocultar URLs de dados

Usado para ocultar o dataurl, então o que é dataurl? O atributo src tradicional da tag img usual especifica um recurso em um servidor remoto. O navegador precisa enviar uma solicitação de recurso pull ao servidor para cada recurso externo. A tecnologia Data URL incorpora dados de imagem na página em formato de string base64 e os integra com HTML.

Bloqueou cookies

Mostrar apenas solicitações com cookies de resposta bloqueados, esta opção não deve ser marcada.

Solicitações bloqueadas

Mostrar apenas solicitações bloqueadas, esta opção não deve ser marcada.

Solicitações de terceiros

Mostrar apenas solicitações de fontes diferentes da origem da página. Não marque esta opção.

4.5 Detalhes das solicitações:


Cabeçalhos de solicitação : Cabeçalhos que exibem solicitações HTTP. Através dele podemos ver o método da solicitação, os parâmetros da solicitação transportada, etc.

  • Em geral

    URL da solicitação : o URL solicitado real
    Método de solicitação : o método de solicitação
    Código de status : código de status, 200 quando bem-sucedido

  • Cabeçalhos de resposta

    Alguns dados definidos quando o servidor retorna, como os dados de cookies mais recentes atualizados pelo servidor, são modificados aqui.

  • Cabeçalhos de solicitações

    Corpo da solicitação, o motivo pelo qual os dados não podem ser solicitados geralmente está aqui. Anti-picking também são os dados no corpo da solicitação.
    Accept : o formato dos dados recebidos pelo servidor (geralmente ignorado)
    Accept-Encoding : a codificação recebida pelo servidor (geralmente ignorada)
    Accept-Language : o idioma recebido pelo servidor ( geralmente ignorado)
    Conexão : mantém a conexão (geralmente ignorado)
    Cookies : informações de cookie, que são informações de identidade. O rastreamento de recursos VIP requer informações de identidade.
    Host : endereço de host solicitado.
    User-Agent : agente de identidade do usuário. O servidor determina as informações gerais do usuário com base nisso.
    Sec-xxx-xxx : Outros. A informação pode ser inútil ou pode ser falsificada. Análise detalhada de situações específicas*

Visualização

​ Preview é uma prévia dos resultados da solicitação. Geralmente é usado para visualizar imagens solicitadas e é mais poderoso para capturar sites de imagens.

Resposta

Resposta é o resultado retornado pela solicitação. O conteúdo geral é o código fonte de todo o site. Se a solicitação for assíncrona, o conteúdo do resultado retornado geralmente será dados de texto Json.

Esses dados podem ser inconsistentes com a página da web exibida pelo navegador porque o navegador é carregado dinamicamente

Iniciador

A pilha chamada pelo início da solicitação

Tempo

​Cronograma de solicitação e resposta

Expansão extracurricular da transmissão HTTP

https://mp.weixin.qq.com/s/aSwXVrz47lAvQ4k0o4VcZg

Acho que você gosta

Origin blog.csdn.net/qq_65898266/article/details/133562634
Recomendado
Clasificación