Aplicatie scraping imobiliare

Exista ceva aplicatie open-source care sa faca scraping/categorizare la anunturile de imobiliare din RO?

Daca ma uit pe orice site din Romania cred ca 99% din anunturi sunt spam (locatie/zona nerelevanta/clickbait) indiferent ca e vorba de chirie sau vanzare. (bine la chirie e ceva mai ok cand te duci cu pretul mai in sus)

Am gasit Scraping for houses (rolisz.ro), cred ca poate fi adaptat in ceva pipeline cu Bard/ un data lake.

1 Like

Ma gandeam sa scriu eu o aplicatie care macar sa identifice duplicatele. Dar apoi mi-am dat seama ca nu vreau sa ma incurc cu mafia imobiliara. Voi ajunge sa fiu zidit in ceva imobil care apoi va fi pus la vanzare cu 2500 euro pe metru patrat, la 10 minute de centru, pretabil pentru investitie.

Mie imi trebuie pentru uz personal, ma gandeam ca e ceva open-source scris de cineva, ca e imposibil sa gasesti ceva bun doar uitandu-te manual zi de zi. Majoritatea care sunt constant pe piata au un motiv anume pentru care nu se vinde.

E.g. din start vreau notificari la orice anunt nou de la persoane fizice.

1 Like

Cred că există tool-uri pentru scraping, dar n-aș zice că s-a axat cineva pe un tool special pentru anunțurile de imobiliare. Cu atât mai mult pe cele din România.

În primul rând pentru că scraping-ul îl faci în funcție de tipul și structura documentului accesat (HTML, în cazul ăsta). Asta înseamnă că nu există un tool special pentru site-urile de imobiliare, ci pentru toate site-urile. Deci, te poate ajuta orice tool de web scraping. Ai putea să te concentrezi doar pe limbajul de programare în care a fost creat, cu care îți e ție mai confortabil să umbli.

Oricum, scraping-ul era la modă acum ceva ani de zile, pe vremea când documentele HTML erau generate și afișate direct. Ori, în ultima vreme site-urile (să le spunem moderne) folosesc ajax, iar conținutul real al anunțurilor (datele anunțurilor) sunt extrase printr-unul sau mai multe request-uri separate (poate chiar folosind un API intern). Asta înseamnă că o soluție mai bună, pe care nu știu dacă o mai poți numi scraping, ar fi ca tool-ul să acceseze exact acele resurse (vorbim probabil de fișiere/date json/xml, care ar putea fi parsate/procesate mult mai ușor).

Off-topic:

În altă ordine de idei, eu, dacă aș avea un site de imobiliare și orice alt tip de site, aș face tot posibilul să-ți dau calculele peste cap. Există ceva soluții pentru a preveni extragerea sau preluarea corectă a datelor din site-urile online și le-aș aplica pe toate. Până la urmă, e vorba de utilizatorii mei pe care i-aș numi “clienți” chiar și dacă nu plătesc pentru anunțurile adăugate. E vorba de datele lor postate și de faptul că ar trebui să fie conștienți de locurile în care anunțurile lor au fost publicate. Ori, permițând altora să extragă datele așa cum vor, e ca și cum nu m-ar interesa de anunțuri, respectiv de clienții mei. Nu aș accepta extragerea corectă a datelor nici măcar pentru uz personal pentru că, ce crezi, nu am încredere în modul în care vei manipula datele.

Doar pentru că oarecum nu e ilegal să faci scraping, rămâne totuși o chestiune imorală. Imaginează-ți că postezi un anunț și dintr-o greșeală faci paste la un conținut ceva mai privat. Iar până să-ți dai seama de asta, datele au fost extrase de alții și au ajuns să fie împrăștiate pe tot internetul. Nu e nimic amuzant aici pentru că uneori e foarte greu să te ia cu toții în seamă când vine vorba de “șterge-mi datele”. Nu iei în serios treaba asta pentru că probabil nu te-ai confruntat niciodată cu situația asta sau nu te-a interesat foarte mult de datele pe care le postezi. S-ar putea la un moment dat să-ți schimbi părerea, să vezi lucrurile cu alți ochi.

În sfârșit. Doar ca fapt divers, mă uit frecvent pe site-urile de imobiliare și chiar m-am gândit de câteva ori să-mi fac un script care să-mi extragă anunțurile care mă interesează în mod expres, în funcție de zone (pe baza coordonatelor), a anumitor filtre inexistente în site-uri, sau chiar pentru a nu mai vedea anunțurile înșelătoare pe care pare că le-ai observat și tu.

Deci, fără să fiu ipocrit spun mai degrabă că dacă intenționezi să faci scraping, ar trebui să ai grijă de date și să nu le folosești cu scopul de a le publica în alte părți. Așa ar fi ideal.

Încă o dată. Toate te pot ajuta: web scraping tools - Google Zoeken

1 Like

Stiu cum sa fac un scraper si stiu si cat de complicat poate sa fie sa faci ceva sa ruleze si a doua zi la fel ca in prima fara sa faci mai multa munca decat sa iei datele manual.

Exista solutii la orice in ziua de azi, m-am gandit si eu la proxy la API unde e posibil, dar nu cred ca e cazul, puppeteer/playwright cu profilul de chrome copiat si vpn de acasa/pe telefon sigur e destul sa faci zilnic orice. Daca vrei chiar sa iei toate datele rapid atunci ar fi probleme, dar daca nu depasesti limitele puse nu au cum sa stie ca nu faci ce face un utilizator normal.

Cat despre date personale/indecente, cred ca exista validare manuala pe fiecare site de anunturi, nu e treaba mea si oricum nu ma deranjeaza pentru uz personal.

Visul meu e sa fac AI-ul sa comunice pe chat pe fiecare anunt si sa afle o locatie cat mai exacta, partea pe care sunt ferestrele, etc.

Puțin cam complicat de pus în aplicare.

Unii utilizatori nu dau locația exactă (1) ca să prevină o eventuală efracție, (2) ca să nu-ți dea posibilitatea să vorbești cu actualii chiriași (presupuând că există - în cazul proprietăților puse la închiriere) și (3) ca să nu inspectezi zona înainte de vizionare (ar putea contribui mai mult la decizia pe care urmează s-o faci).

Iar agențiile din aceleași motive + că interesul lor este să fie implicați ca intermediari și să-și ia comisionul. Deci, din nou, nu obișnuiesc să comunice adresa exactă ca să nu-ți dea șansa să ajungi la proprietar fără ei.

Cât despre orientare, unde sunt ferestrele, am dubii că ai cum să afli asta fără să-ți scrie în descrierea anunțului. Și dacă nu-ți scrie în anunț, n-ai ce să faci. Încă n-avem AI-ul care să identifice zona care se vede prin geamul ferestrei (asta dacă se vede). Iar să te limitezi doar la cele în care e menționat că ai vedere spre est, de exemplu, mi se pare cam aiurea. Te limitează prea mult.

1 Like

Eu ma refeream ca sa leg chat-ul din olx de exemplu intr-un sistem in care de pe n conturi sa intrebe usor daca nu poate oferi mai multe informatii precum orientare, etaj, daca inca e disponibil si sa proceseze raspunsul/raspunsurile in baza de date.

Nici vorba sa am nevoie de ceva complicat. As extrage cel mult metadata la poze, poate cineva uita sa scoata coordonatele din ele, in rest un agent intreaba pe chat.

Dar pe mine in principal aici ma interesa daca e ceva proiect pe github deja facut pentru ceva similar.

Poate reusesti sa deslusesti de ce harta imobiliarelor de vanzare din Cluj arata cam asa

Scuze! Mai sus ai spus “sa afle o locatie cat mai exacta, partea pe care sunt ferestrele”. Așadar, am presupus că intenționezi să folosești AI-ul ca să identifici locația proprietății fară o intervenție umană. Cred că am gândit prea mult (sau am așteptări prea mari de la tine :D).

Înțeleg acum că AI-ul din aplicația ta ar urma doar să pună întrebări prin chat-ul olx (e un exemplu de site) și mai departe vrei să stochezi răspunsurile primite (nu înainte ca AI-ul să filtreze răspunsul și să oprească doar ce ai nevoie - exemplu: “est”).

Dacă am înțeles bine, lucrul ăsta se face în general printr-un API (pus la dispoziție de site - asta dacă există un API), nu printr-un scraper. În general, atunci când vorbim de o mesagerie/chat (ca în exemplul de mai sus), vorbim implicit de un utilizator care trebuie inițial să se autentifice (chiar dacă e folosit pe post de bot). Pentru asta există API-urile, care conțin reguli clare prin care se va face comunicarea.

Deci, să zicem că ai nevoie de un scraper cu autentificare. Vezi mechanize — mechanize 0.4.8 documentation dacă te ajută.

PS: Ar putea totuși să-ți dea cu virgulă. De exemplu, un site web poate identifica modul în care ai accesat pagina de autentificare și-ți poate dezactiva accesul dacă nu folosești gesturile unui om (ci al unui bot). Ar putea la fel de bine să te blocheze după ce reușești să te autentifici, sau pur și simplu să forțeze regenerarea unui token în anumite condiții. Deci, câtă vreme nu există un API, se pot întâmpla destul de multe lucruri în acel scraper. Dar pare că știi deja treaba asta.

2 Likes

Asta nu ajuta https://www.imoradar24.ro/ ?
Nu e open source dar cred ca e fix ce ai nevoie.

1 Like

E ce am nevoie, dar dupa o scurta verificare lipsesc cam 80% din anunturi si filtrele sunt rudimentare.

Mie mi-ar trebui baza mea de date ca sa fac de exemplu 'SELECT * FROM APARTMENTS
WHERE TYPE = “CHIRIE” AND PRICE >= 300 AND AD_DATE >= “2023-07-01” AND TITLE NOT LIKE “%untold%”;’

Awww, mi-a citit cineva postul de acum 5 ani :))) Daca te intereseaza, aici sunt si niste concluzii trase dupa ce am facut scraping cateva luni, prezentate la Oradea Tech Hub: Housing data analysis - Google Presentaties

5 Likes

Intre timp olx a schimbat radical markup-ul, dar asta nu inseamna ca nu mai poate fi parsat. Se pare ca au trecut la CSS in JS, dar au lasat multe data-testid din urma. Cautam saptamana asta o masina si am facut repede un scrapper cu x-ray. Nu a iesit rau deloc.

Poate e util cuiva. JSON deja eventual poate analizat prin o sumedenie de metode.

1 Like