Tutorial do Scrapy: Como fazer um rastreador da Web usando o Scrapy?



Neste artigo do Tutorial do Scrapy, você aprenderá a fazer um rastreador da web com várias técnicas de extração de dados e maneiras de armazenar os dados em um banco de dados.

Web scraping é uma forma eficaz de reunir dados de páginas da web, tornou-se uma ferramenta eficaz em . Com vários bibliotecas presente para web scraping como , o trabalho de um cientista de dados torna-se ideal. Scrapy é uma poderosa estrutura da web usada para extrair, processar e armazenar dados. Aprenderemos como podemos fazer um rastreador da web neste tutorial scrapy. A seguir estão os tópicos discutidos neste blog:

O que é o Scrapy?

Scrapy é uma estrutura de rastreamento da web gratuita e de código aberto escrita em python. Foi originalmente projetado para realizar , mas também pode ser usado para extrair dados usando APIs. É mantido pela Scrapinghub ltd.





O Scrapy é um pacote completo quando se trata de baixar as páginas da web, processar e armazenar os dados no .

É como uma potência quando se trata de web scraping, com várias maneiras de fazer scraping em um site. O Scrapy lida com tarefas maiores com facilidade, raspando várias páginas ou um grupo de URLs em menos de um minuto. Ele usa um twister que funciona de forma assíncrona para alcançar a simultaneidade.



Ele fornece contratos de aranha que nos permitem criar rastreadores genéricos e profundos. O Scrapy também fornece pipelines de itens para criar funções em um spider que podem realizar várias operações, como substituir valores em dados etc.

scrapy architecture-scrapy tutorial-edureka

O que é um rastreador da Web?

Um rastreador da web é um programa que pesquisa documentos na web automaticamente. Eles são programados principalmente para ações repetitivas para navegação automatizada.

Como funciona?



Um rastreador da web é bastante semelhante a um bibliotecário. Ele procura as informações na web, categoriza as informações e, em seguida, indexa e cataloga as informações para que as informações rastreadas sejam recuperadas e armazenadas de acordo.

As operações que serão realizadas pelo rastreador são criadas de antemão e, em seguida, o rastreador executa todas as operações automaticamente que criarão um índice. Esses índices podem ser acessados ​​por um software de saída.

Vamos dar uma olhada em vários aplicativos para os quais um rastreador da web pode ser usado:

  • Os portais de comparação de preços procuram detalhes de produtos específicos para fazer uma comparação de preços em diferentes plataformas usando um rastreador da web.

  • Um web crawler desempenha um papel muito importante no campo da mineração de dados para a recuperação de informações.

  • As ferramentas de análise de dados usam rastreadores da web para calcular os dados de visualizações de páginas e links de entrada e saída.

  • Os rastreadores também servem para centros de informações para coletar dados, como portais de notícias.

Como instalar o Scrapy?

Para instalar o scrapy em seu sistema, é recomendável instalá-lo em um virtualenv dedicado. A instalação funciona de forma muito semelhante a qualquer outro pacote em python, se você estiver usando conda ambiente, use o seguinte comando para instalar o scrapy:

conda install -c conda-forge scrapy

você também pode usar o ambiente pip para instalar o scrapy,

pip install scrapy

Pode haver algumas dependências de compilação, dependendo do seu sistema operacional. Scrapy é escrito em Python puro e pode depender de alguns pacotes Python, como:

  • lxml - É um analisador XML e HTML eficiente.

  • parcel - Uma biblioteca de extração HTML / XML escrita em lxml

  • W3lib - É um auxiliar multifuncional para lidar com URLs e codificações de páginas da web

  • twisted - Uma estrutura de rede assíncrona

  • criptografia - ajuda em várias necessidades de segurança em nível de rede

Iniciando Seu Primeiro Projeto Scrapy

Para iniciar seu primeiro projeto scrapy, vá para o diretório ou local onde deseja salvar seus arquivos e execute o seguinte comando

scrapy startproject projectname

Depois de executar este comando, você obterá os seguintes diretórios criados nesse local.

  • Nome do Projeto/

    • scrapy.cfg: implanta arquivo de configuração

  • Nome do Projeto/

    • __init__.py: módulo python do projeto

    • items.py: arquivo de definição de itens do projeto

    • middlewares.py: arquivo de middlewares do projeto

    • pipelines.py: arquivo de pipelines do projeto

    • settings.py: arquivo de configurações do projeto

  • aranhas /

    • __init__.py: um diretório onde mais tarde você colocará seus spiders

Fazendo sua primeira aranha

Spiders são classes que definimos e usa scrapy para coletar informações da web. Você deve criar uma subclasse de scrapy.Spider e definir as solicitações iniciais a serem feitas.

Você escreve o código para seu spider em um arquivo python separado e o salva no diretório projectname / spiders em seu projeto.

quotes_spider.py

import scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] para url em urls: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'aspas-% s.html'% página aberta (nome do arquivo, 'wb') como f: f.write (response.body) self.log ('arquivo salvo% s'% nome do arquivo)

Como você pode ver, definimos várias funções em nossos spiders,

  • nome: identifica a aranha, deve ser único em todo o projeto.

  • start_requests (): deve retornar um iterável de solicitações com as quais o spider começará a rastrear.

    diferença entre sobrecarga de método e substituição de método
  • parse (): é um método que será chamado para tratar a resposta baixada a cada solicitação.

Extraindo dados

Até agora, o spider não extrai nenhum dado, apenas salvou todo o arquivo HTML. Um scrapy spider geralmente gera muitos dicionários contendo os dados extraídos da página. Usamos a palavra-chave yield em python no retorno de chamada para extrair os dados.

import scrapy class QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): para citação em response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' autor ': citação .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Quando você executa este spider, ele produzirá os dados extraídos com o log.

Armazenando os Dados

A maneira mais simples de armazenar os dados extraídos é usando exportações de feed, use o seguinte comando para armazenar seus dados.

scrapy crawl quotes -o quotes.json

Este comando irá gerar um arquivo quotes.json contendo todos os itens copiados, serializados em JSON .

Isso nos leva ao final deste artigo, onde aprendemos como podemos fazer um rastreador da web usando scrapy em python para raspar um site e extrair os dados em um arquivo JSON. Espero que você tenha esclarecido tudo o que foi compartilhado com você neste tutorial.

Se você achou este artigo no “Tutorial do Scrapy” relevante, verifique o uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.

Estamos aqui para ajudá-lo em cada etapa de sua jornada e criar um currículo projetado para estudantes e profissionais que desejam ser um . O curso foi desenvolvido para dar a você uma vantagem inicial na programação Python e treiná-lo para os conceitos básicos e avançados do Python, juntamente com vários gostar

Se você encontrar alguma dúvida, fique à vontade para fazer todas as suas perguntas na seção de comentários do “Tutorial do Scrapy” e nossa equipe terá prazer em responder.