Pozyskanie zbioru danych o ofertach nieruchomości zostało wykonane poprzez scraping stron serwisu otodom.pl
Pierwszym etapem było pobranie listy adresów szczegółowych ofert z wszystkich wyfiltrowanych odsłon stron po (oferty z Gdańska, Gdyni i Sopotu) spośród wszystkich ofert serwisu:
Poszczególne adresy URL szczegółowych ofert zostały pobrane i zapisane w bazie danych w tabeli OTODOM_OFFERS wraz z datą scrapowania oraz statusem 0 (oferta nie została jeszcze poddana scrapingowi).
Została do tego stworzona i wykorzystana funkcja collect_offers_urls(config, base_url)
Proces pobierania informacji o danej ofercie poprzedzony jest pobranie adresu URL z tabeli OTODOM_OFFERS.
- Tytuł oferty
- Lokalizacja
- Cena
- Cena za metr
- Szczegóły nieruchomości
- Informacje dodatkowe
W ramach informacji dodatkowych brano pod uwagę tylko informacje o:
"TEREN_ZAMKNIETY", "BALKON", "OGRODEK", "GARAZ_MIEJSCE", "WINDA", "PIWNICA", "MONITORING_OCHRONA"
Gdy informacja się pojawiała, przypisywano jej wartość 1, przy braku wartość 0.
Uznano, że głównym celem oferty jest jak najlepsze zareklamowanie nieruchomości więc w gestii osoby sprzedającej jest podanie wszelkich atrybutów/cech nieruchomości mogącej wyróżnić daną ofertę.
Dane, po przetworzeniu np. pozbycie się jednostek, rozbicie lokalizacji na miasto, dzielnicę i miasto itp. trafiały do tabeli OTODOM_OFFERS_DETAILS
W przypadku udanego pobrania danych ze strony oferty, data pobrania danych oraz status (1) został zaktualizowany w tabeli OTODOM_OFFERS. W przeciwnym przypadku status został zaktualizowany jako 99.
Została do tego stworzona i wykorzystana funkcja scrape_offers(config, limit_offers_to_scrape=None)
Przygotowany zbiór został pobrany do pamięci Jupyter Notebook (korzystając z bibliotek pandas, sqlalchemy oraz cx_Oracle) gdzie został poddany analizie.
Całość analizy, przetwarzania danych oraz modelowania zostało przedstawione w analiza_raport.html (archiwum ZIP) ) oraz pliku analiza.py, znajdujących się w folderze notebooks.