Python Sahibinden.net üzerinden emlak verileri nasıl çekilir?

Katılım
8 Eylül 2018
Mesajlar
9.633
Makaleler
8
Çözümler
224
Yer
İstanbul
Arkadaşlar merhaba. Bitirme projesi için Sahibinden.net üzerinden emlak verilerini çekeceğim. Manuel veri çekmek oldukça zor ve zaman kaybettirmekte. Örneklem el verirse 384 adet konut verisi çekmem lazım. Fakat her konut içi ayrı parametreler lazım.

Bunlar; oda sayısı, ısıtma sistemi, toplu taşımaya uzaklık, asansör mevcut mu vs. arttıkça konut başı en az 10 parametre çıkıyor. 3840 veya daha fazla veriyi 2 kişi çekeceğiz ve bu da oldukça uğraştıracak.

Bunun yerine Selenium be BS4 kütüphaneleri ile veri çekmek istiyorum lakin sahibinden.net engel koyuyor ve biraz daha zorlarsam IP ban yiyeceğim. API'de elde olmadığı için iş başa düştü. 1 hafta boyunca Selenium kütüphanelerine odaklandım ve henüz sadece siteyi açma seviyesine gelebildim, siteyi açtıktan sonra sekme anında kapanıyor. Diğer sitelerin uzantısını açıyor, Sahibinden'i açmıyor.
Sahibinden'e girmem şart değil ama en çok veri orada var, ek olarak emlakjet.net gibi sitelerden de veri çekebilirim ama önceliğim sahibinden. Yazdığım kod şu şekilde:

Python:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# WebDriver path
driver_path = r"C:\Users\Emre\Desktop\chromedriver-win64\chromedriver.exe"

# Chrome Options (isteğe bağlı)
options = Options()
options.add_argument("--start-maximized") # Tarayıcıyı tam ekran başlatır (isteğe bağlı)

# ChromeDriver'ı başlatmak için Service parametresi
service = Service(driver_path)

# WebDriver'ı başlat
browser = webdriver.Chrome(service=service, options=options)

# Sayfayı aç
browser.get("https://www.sahibinden.com/satilik/samsun-atakum")

Henüz siteyi açma aşamasındayım dediğim gibi, siteyi açtıktan sonra gelen doğrulama ekranını nasıl aşabilirim?
 
Sahibinden giriş yapmadan dolaşmana izin vermiyor artık. Giriş yapıyor musun? Captacha doğrulamasında mı takılıyorsun?
 
Captacha doğrulamasında mı takılıyorsun?

Evet hocam. Doğrulamaya takılıyorum. Kodu elde ettim. İlan sayfasındaki kodları çekip df yapan bir kod da hazırladım.

Otomasyona dökme kısmı var ama onu beceremedim.
 
Python'da Captcha'yı bypass etmek için bir çok kütüphane ve yöntem var ancak daha önce web scraping yaparken hiç Captcha'ya takılmadığım için denemedim. hCaptcha Solver eklemeyi deneyebilirsin. Fakat Sahibinden'de kullanılan Captcha biraz garip olduğu için çözmekte zorlanabilirsin. Size alternatif bir önerim her defasında sıfırdan giriş yapması yerine tek seferlik yapacağınız girişin çerezini kaydetmek. Direk konunun kendisini atarsam daha iyi anlarsınız:

How to save the browser sessions in Selenium?
Kısacası Selenium, kayıtlı çerezi yükleyecek. Çerez işini ben bs4'te çözememiştim ama Selenium'da hızlıca yapmıştım. Bu konudan almama rağmen çalışabilir hale gelmesi için bayağı bir uğraşmıştım. Fakat dosyalar gittiği için kodların kendisini de hatırlamıyorum. Ama denediğim bir kaç sitede direk hesap açık şekilde siteyi açmayı başarmıştım. Bir bakın bence. Belki başarırsınız.
 

Hocam bayağı baktım da beni aştı. Ben emlakjet.net üzerinden devam edeceğim şimdilik. Gelişme olursa yine sizi bilgilendiririm.
 
Hocam bayağı baktım da beni aştı. Ben emlakjet.net üzerinden devam edeceğim şimdilik. Gelişme olursa yine sizi bilgilendiririm.
Dediğim gibi otomasyonu sağlam yapacağım çerez kullanmayacağım diyorsanız Captcha'yı bypass edecekseniz fakat her sitede farklı yöntem işliyor yani benim yazacağım kodlarla olacak değil belki 3 belki 6 farklı bypass kodu ile geçebilirsiniz. Hiç bypass etmeyi denediniz mi?
 

Hiç denemedim, ona yarın bakabilirim. Şimdilik en azından 10-20 veriyi sete manuel ekleyeceğim. Sonrasına hafta sonu bakabilirim.

Dediklerinizi dikkate alacağım, çok sağ olun.
 
Hiç denemedim, ona yarın bakabilirim. Şimdilik en azından 10-20 veriyi sete manuel ekleyeceğim. Sonrasına hafta sonu bakabilirim.

Dediklerinizi dikkate alacağım, çok sağ olun.
O zaman önce basit bypass etmenizi öneririm. Pek sağlam bir Captcha'ya benzemiyor. Kolayca bypass edilebilir diye düşünüyorum.
 
Buyur:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Anlık, 7/24 çalışan veya yüzlerce kullanıcısı olan bir site yapmıyorsun.
O zaman neden captcha veya scrape etmekle uğraşıyorsun ki? Sana veri lazım, 300-500 artık ne ise. Yapıştır bir tane chrome extension. Sahibindene gir, yazdığın extension, anlık sayfayı alıp veri haline getirsin. Sayfayı değiştir > Extension çalıştır > veriyi al. Döngü bu şekilde. Max 1 saatte yaparsın.
Sahibinden, scrape edilmemeye çok uğraşıyor garip şekilde.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…