Skip to content

Latest commit

 

History

History
101 lines (67 loc) · 2.68 KB

Readme-ptBR.md

File metadata and controls

101 lines (67 loc) · 2.68 KB

scrapy-pokemon-web-crawler

English Version

Projeto demonstrativo com scrapy, utilizando spiders para raspar dados da api Pokemon pokeapi e salvar em arquivos .csv



Motivação

Demonstrar e exemplificar como raspar dados de APIs RESTful com python.



Como fazer você mesmo

clone o repositório do projeto

git clone https://github.com/esperancaleonardo/scrapy-pokemon-web-crawler.git

crie um virtualenv do python dentro do repositório, ao lado da pasta /crawler

cd scrapy-pokemon-web-crawler
python3 -m venv .venv 

ative o ambiente virtual e instale as dependências do projeto

source .venv/bin/activate
pip install -r requirements.txt

ainda na pasta raiz, execute a primeira spider do projeto com o comando abaixo, passando a flag -o para salvar os dados em um .csv

scrapy crawl list_pokemons -L INFO -o pokemons_list.csv

será criado um arquivo .csv com a estrutura abaixo:

pokemon_id pokemon_name pokemon_api_url
1 bulbasaur https://pokeapi.co/api/v2/pokemon/1/
... ... ...

então, ainda na mesma pasta, execute a segunda spider para raspar dados dos pokemons raspados na primeira etapa

scrapy crawl pokemon -L INFO -o pokemons_info.csv

será criado um arquivo .csv com a estrutura abaixo:

id name order base_exp sprite hp attack defense speed height weight
1 bulbasaur 1 64 45 49 49 45 7 69


Raspando outras rotas da API

inicialize uma nova spider com o comando abaixo, dentro da raiz do projeto:

scrapy genspider <spidername> <domaintocrawl>

será criado um arquivo .py com o nome dado à spider e com o template dentro da pasta /spiders:

import scrapy

# generated with  'scrapy genspider myspider exemple.com'
class MyspiderSpider(scrapy.Spider):
    name = 'myspider'
    allowed_domains = ['exemple.com']
    start_urls = ['http://exemple.com/']

    def parse(self, response):
        pass

Stack utilizada

Python: 3.10.5

Bibliottecas: [email protected], [email protected]

Autor

Referências