Skip to content

Nilton94/Web_Scraping_Arg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 

Repository files navigation

Web Scraping de Imóveis - Argenprop e Zonaprop

Conteúdo

Diagrama

Diagrama

Descrição do Projeto

Visando facilitar a procura por imóveis de aluguel, criei uma aplicação em Python que facilita a busca nos sites de imóveis da minha região. Usando Streamlit como frontend, pude criar um mapa interativo com as coordenadas dos imóveis selecionados e, ao clicar nos imóveis, salvá-los em um dataframe para posterior envio por email ou consulta direta no link.

O app possui diversos filtros para facilitar a escolha dos imóveis com as características mais importantes. Além disso, todo o código foi colocado em uma imagem do Docker para facilitar tanto o deploy no Render quanto uso em outras máquinas.

Estrutura

  • Data

    • Diretório com os dados tanto geográficos quanto das páginas web retornadas pelo web scraping
    • Cada site tem seu banco de dados no DuckDB salvando os dados brutos e os dados enriquecidos com coordenadas geográficas e dados de distância para alguns pontos.
  • Utils

    • Diretório com todas as classes e funções usadas para a criação dos crawlers, armazenamento e tratamento dos dados, bem como para a criação do frontend
    • lat_long :
      • Consolida funções para retorno das coordenadas geográficas com base no endereço passado, usando a biblioteca Geopy
    • log_config :
      • Possui as configurações do logger usando a biblioteca logging
    • utils_scraper :
      • Possui as classes para realizar o web scraping de ambos os sites
      • Para o site Zonaprop foi utilizado Selenium
      • Já para o site Argenprop foi utilizado Asyncio + Aiohttp
    • utils_storage :
      • Possui as classes para inserção e gerenciamento dos no DuckDB
    • utils_streamlit :
      • Possui as classes para criação dos objetos no Streamlit, como o mapa interativo usando Folium

Como Utilizar o App

  • Render:

  • Docker Image

    • Tendo o Docker instalado e ativo, faço o pull da imagem no Docker Hub
      $ docker pull niltonandrade/web-scraping-argenprop-zonaprop-jnga:latest
      
    • Com a imagem já baixada, basta dar o run. Como o app tem uma sessão de envio de e-mail, basta passar valores para as varíaveis de ambiente EMAIL e EMAIL_PASSWORD, e assim será possível enviar a lista de imóveis selecionados para o e-mail destinatário especificado no frontend.
      $ docker run -dp 127.0.0.1:8501:8501 --name {nome do container/opcional} -e EMAIL={email remetente/opcional} -e EMAIL_PASSWORD={senha do email remetente/opcional} niltonandrade/web-scraping-argenprop-zonaprop-jnga:latest