Crawlers para sites de aluguel com persistência em banco de dados não relacional e deduplicação de itens usando banco em memória.
O projeto visa agregar as informações disponíveis em sites de aluguel em um único local para facilitar a busca de um novo apartamento e ter mais parâmetros de busca além dos que os sites disponibilizam.
- Python 3.8+
- Poetry
- MongoDB
- Redis
- Start Page
- Número da página que a extração do crawler deve partir
- Total Pages
- Quantidade máxima de páginas processadas pelo
start_requests
do crawler
- Quantidade máxima de páginas processadas pelo
Os crawlers usam as urls internas de cada site para extrair os dados ao invés de acessar a página de busca. Atualmente as urls estão apontando para a cidade de São Paulo, para atualizar o local é preciso descobrir essa url interna ou o payload de dados enviado na requisição de cada site para a cidade desejada e atualizar a variável start_url ou o payload com esse valor.
Mais informações em:
- https://docs.scrapy.org/en/latest/topics/developer-tools.html#the-network-tool
- https://docs.scrapy.org/en/latest/topics/dynamic-content.html
Para subir uma instância local MongoDB e um Redis e salvar o resultado do crawler, execute na pasta do projeto:
cat `
MONGO_INITDB_DATABASE: rent
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: pass
ME_CONFIG_MONGODB_SERVER: mongodb
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: pass
REDIS_PASSWORD: root
` > .env
docker-compose up -d
Após essa configuração os seguintes endpoints estarão disponíveis:
- MongoDB:
mongodb://root:pass@localhost:27017
- Redis:
redis://root:root@localhost:9001/0
- Mongo Express:
http://localhost:8082
poetry run scrapy crawl <spider_name> -a <spider_parameter>=<spider_parameter_value>
poetry install --with=dev
poetry run scrapy crawl <spider_name> -o output.json
Distributed under the GNU License. See LICENSE for more information.