Criando um WebCrowler com scrapy


1- Introdução

Nesse tutorial iremos mostrar o que você precisa fazer para criar um webcrowler que pega informações de um site e extrai para um arquivo CSV. No nosso caso utilizamos o site StackOverflow para pegar títulos de perguntas.

2- Passo a Passo


Passo 1- Instale o scrapy em seu computador via PIP


pip install scrapy

NOTA: caso seu computador precise do Visual Studio build tools, você terá de baixar no site da microsoft e instalar.

Passo 2: Crie o projeto utilizando o scrapy


scrapy startproject nomedoprojeto

Após rodar esse comando no terminal o scrapy criará uma pasta contendo arquivos básicos para seu crowler.

Passo 3: crie sua primeira Spyder


Navegue no terminal até a pasta do projeto usando cd nomedoprojeto

scrapy genspyder sp1 stackoverflow.com

Esse comando irá gerar uma "aranha" que realizara o crowl no site.

Passo 4: configurando sua spyder

Para esse passo você precisará dizer a sua spyder onde ela deverá pegar os dados. Veja um exemplo de como realizar isso.

import scrapy

from stackOverflowCrowler.items import StackoverflowcrowlerItem

class Sp1Spider(scrapy.Spider):
    name = 'sp1'
    allowed_domains = ['stackoverflow.com']
    start_urls = ['https://stackoverflow.com/']
    
    def start_requests(self):
        yield scrapy.Request('https://stackoverflow.com/questions/11827176/', self.parse)
        yield scrapy.Request('https://stackoverflow.com/questions/11827175/', self.parse)
        yield scrapy.Request('https://stackoverflow.com/questions/11827174/', self.parse)

    def parse(self, response):
        for h1 in response.xpath('//*[@id="question-header"]/h1/a').getall():
            yield StackoverflowcrowlerItem(titulo=h1)

        for href in response.xpath('//*[@id="question-header"]/h1/a').getall():
            yield scrapy.Request(response.urljoin(href), self.parse)


Passo 5: Faça o crowler funcionar

Para fazer seu crowler buscar os dados e salvar tudo em csv utilize o comando:

scrapy crawl sp1 -o YourFileName -t csv

Criando um WebCrowler com scrapy Criando um WebCrowler com scrapy Reviewed by Vinicius dos Santos on 09:41:00 Rating: 5

Nenhum comentário

Escreve ai sua opinião!