Parser ogłoszeń nieruchomościTworzenie i dostosowywanie

Parser w Pythonie do ogólnodostępnych ogłoszeń nieruchomości: cena, powierzchnia, pokoje, dzielnica i link w tabeli, bez kontaktów

Zwykle gotowe w ok. 15 minutPoprawki w cenieKontrola jakości
Pakiety
Ochrona płatnościSzczegóły
  • Poprawki w ramach pakietu są bezpłatne.
  • Jeśli nie odpowiesz w ciągu 3 dni od dostarczenia pracy, zostanie ona zaakceptowana automatycznie.

Pieniądze są rezerwowane w chwili płatności i przekazywane dopiero po akceptacji pracy.

Parser w Pythonie do ogólnodostępnych ogłoszeń nieruchomości: cena, powierzchnia, pokoje, dzielnica i link w tabeli, bez kontaktów

Przykładowy rezultat

Przykład dla pakietu Standard

Parser katalogu dostawcy narzędzi ogrodowych do Excela

Jak wygląda wynik

IndeksNazwaCenaDostępnyWagaZdjęcie
GT-1042Sekator, 20 mm18,90Tak0,24 kg…/gt-1042.jpg
GT-1187Piła składana, 210 mm24,50Tak0,31 kg…/gt-1187.jpg
GT-2210Nożyce do żywopłotu, ostrza faliste39,00Nie1,10 kg…/gt-2210.jpg
GT-3305Łopatka ogrodowa, nierdzewna9,80Tak0,18 kg…/gt-3305.jpg
GT-4120Wąż ogrodowy 25 m, 1/2"42,00Tak2,90 kg…/gt-4120.jpg

Plik w przykładzie zawiera 1236 produktów z 52 stron listy.

Fragment kodu

def product_links(list_url: str) -> Iterator[str]:
    """Linki do stron produktów z każdej strony listy, z przejściem przez „Dalej”."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """Jedna ogólnodostępna strona, w spokojnym tempie: przerwa między zapytaniami i kilka prób przy błędach."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s odpowiedział kodem %s, próba %d z 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} nie otworzył się po 3 próbach")

Pliki: archiwum ZIP z plikami scraper.py, settings.ini (strona startowa, przerwa między zapytaniami, nazwa pliku), requirements.txt oraz README o instalacji i uruchomieniu. Parser czyta tylko ogólnodostępne strony, jedną co 2 sekundy, i najpierw sprawdza plik robots.txt strony. Klient uruchamia go na własnym komputerze.

Klient: internetowy sklep ogrodniczy, który odsprzedaje narzędzia dostawcy; dostawca ma na swojej stronie ogólnodostępny katalog, ale nie udostępnia pliku z cennikiem. Zadanie: przejść przez strony listy w katalogu, otworzyć każdą stronę produktu i zapisać do Excela indeks, nazwę, cenę, dostępność, wagę i link do głównego zdjęcia, żeby raz w tygodniu porównywać ceny.

Klient i wszystkie dane są wymyślone.

O usłudze

Dla biura nieruchomości, inwestora czy kupującego ten parser zbiera ogólnodostępne ogłoszenia nieruchomości w jedną tabelę: rodzaj, cena, cena za metr kwadratowy, jeśli jest podana, powierzchnia, pokoje, piętro, miasto i dzielnica, ulica w brzmieniu z ogłoszenia, data publikacji, link i linki do zdjęć. Ustaw wyszukiwanie na stronie ze swoimi filtrami i prześlij nam ten link, jedno ogłoszenie oraz jedną lub dwie strony zapisane z przeglądarki. Dostajesz kod w Pythonie, plik ustawień i README i uruchamiasz go na swoim komputerze. Dane osób zostają poza tabelą: żadnych imion, nazwisk, e-maili ani numerów telefonów właścicieli czy agentów, tylko link do ogłoszenia. Czyta ogólnodostępne strony w spokojnym tempie i nigdy się nie loguje ani nie obchodzi captchy czy zabezpieczeń. To Ty oceniasz, czy regulamin strony na to pozwala, a późniejsza zmiana jej układu wymaga aktualizacji.

Co obejmuje usługa

  • Co otrzymaszArchiwum ZIP z kodem w Pythonie, plikiem ustawień i plikiem README z instrukcją krok po kroku; kod widać też na stronie zamówienia.
  • Twoje wyszukiwanie, Twoje filtryStartuje od linku wyszukiwania, który ustawisz na stronie
  • Liczby do sortowaniaCena, powierzchnia i piętro w osobnych kolumnach
  • Bez kontaktówImiona i telefony sprzedających i agentów są pomijane
  • Linki do zdjęćLinki do zdjęć z ogłoszenia, a nie same pliki
  • Spokojne tempoPrzerwa między stronami ustawiana w ustawieniach

Jak to działa

  1. 1
    WyszukiwanieUstawiasz wyszukiwanie i przesyłasz jego link oraz zapisane ogłoszenie
  2. 2
    ParserPiszemy kod i instrukcję uruchomienia
  3. 3
    UruchomienieUruchamiasz go i porównujesz pierwsze wiersze ze stroną
  4. 4
    ZmianyZgłaszasz poprawki w ramach pakietu i przesyłasz ewentualny komunikat o błędzie

Czego potrzebujemy od Ciebie

Strona z nieruchomościami i link do wyszukiwania z Twoimi filtrami (miasto, rodzaj, przedział cen), jedna strona ogłoszenia oraz mniej więcej liczba ogłoszeń w wynikach. Pola, których potrzebujesz, w kolejności Twojej tabeli, np. rodzaj, cena, powierzchnia, pokoje, piętro, dzielnica, data publikacji, link. Jedna lub dwie takie strony zapisane z przeglądarki (Plik > Zapisz stronę jako) lub zrzuty ekranu. CSV czy Excel.

Zapytamy Cię:

  • Która strona i jakie wyszukiwanie?
  • Potrzebne pola
  • Mniej więcej ile ogłoszeń?
  • Co jeszcze ma robić

Porównaj pakiety

PakietyPodstawowyOgłoszenia z Twoich linków83 złStandardWyniki wyszukiwania i ogłoszenia162 złPremiumDo 3 stron z nieruchomościami286 zł
Termin1 dzień2 dni3 dni
Poprawki123
Strony11do 3
Rodzaje stron12 (wyniki wyszukiwania i ogłoszenie)do 3
Polado 10do 25do 25 na każdej
Przechodzi przez kolejne strony listyNieTakTak
Plik z wynikamiCSVExcel lub CSVExcel, CSV lub JSON
Bez duplikatów, wznawia pracę od miejsca, w którym przerwałNieNieTak
Zamów PodstawowyZamów StandardZamów Premium

Ochrona płatności

Płacisz przy składaniu zamówienia, ale pieniądze są przekazywane tylko za zaakceptowaną pracę.

  • Stała cenaCena pakietu nie zmienia się po zapłacie.
  • Pieniądze są zarezerwowanePrzy płatności kwota jest tylko rezerwowana. Serwis otrzymuje ją dopiero po akceptacji pracy.
  • Sprawdzone przed dostarczeniemKażdy wynik przechodzi kontrolę jakości, zanim do Ciebie trafi, a przed akceptacją widzisz go na stronie zamówienia.
  • Bezpłatne poprawkiProś o poprawki w ramach briefu tyle razy, ile przewiduje pakiet.
  • Akceptacja po 3 dniachJeśli w ciągu 3 dni od dostarczenia pracy ani jej nie zaakceptujesz, ani nie poprosisz o poprawki, zostanie zaakceptowana automatycznie. Jeśli po dostarczeniu napiszesz na czacie zamówienia, zamówienie czeka; po naszej odpowiedzi możemy ponownie uruchomić odliczanie 3 dni i poinformujemy o tym na czacie.
  • Ponowne wykonanie lub pełny zwrot pieniędzyJeśli wynik nie odpowiada Twojemu briefowi, a poprawki tego nie naprawiły, lub praca trwa ponad dwa razy dłużej niż termin, napisz na czacie zamówienia: wykonamy pracę ponownie albo zwrócimy całą płatność.
Jak to działa →

Pytania i odpowiedzi

Czy mogę dostać numer telefonu sprzedającego lub agenta?

Nie. Parser nie zbiera danych osobowych: żadnych imion, nazwisk, e-maili ani numerów telefonów. Każdy wiersz ma link do ogłoszenia, przez które skontaktujesz się ze sprzedającym tak, jak umożliwia to strona.

Czy pokaże zmiany cen i usunięte ogłoszenia?

Każde uruchomienie zapisuje nową tabelę z datą, więc możesz zestawić dwa uruchomienia obok siebie w Excelu. Sam parser nie śledzi zmian ani o nich nie informuje.

Które strony z nieruchomościami może odczytać?

Ogólnodostępne strony, które pokazują ogłoszenia bez logowania i bez captchy. Wiele dużych portali zabrania zbierania danych w regulaminie: sprawdź go, decyzja należy do Ciebie. Nie odczytuje Google, Amazona, LinkedIn ani mediów społecznościowych.

Czy może zapisywać same zdjęcia?

Zapisuje linki. Zdjęcia należą do ich autorów, więc pliki są zapisywane tylko wtedy, gdy możesz z nich korzystać, na przykład przy własnych ogłoszeniach.

Nie ma tu odpowiedzi?

Pakiety