Python Kullanarak (API Kullanmadan) Ücretsiz Olarak Yorumları Nasıl Kazıyabilirsiniz?
Python kullanarak Play, Yelp ve Trustpilot'tan yorumları topladık. Her platform farklı bir yöntem gerektirdi:
- Trustpilot şirket sayfaları : HTML'yi değiştirmek için requests + BeautifulSoup ve birden fazla seçici.
- Yelp işletmeleri : Güçlü bot korumasını aşmak için algılama önleyici yapılandırmaya sahip Selenium.
- Google Play Store uygulamaları: Selenium, Google Play Scraper kütüphanesiyle birlikte hızlı ve yapılandırılmış sonuçlar sunar.
Python ve Selenium kullanarak Google Oyun Yorumlarını Nasıl Kazıyabilirsiniz?
Adım 1: Tespit önleme sisteminin kurulması
Google, Google Play'de spam karşıtı koruma önlemlerini genişletmeye devam ediyor. Google'un Android güvenlik raporuna göre, platform 160 milyon spam puanlama ve yorumu engelledi ve yorum bombardımanına karşı ek korumalar getirdi. 1
Play incelemelerini kazımak için otomasyon sinyallerinin gizlenmesi gerekiyor. Komut dosyası, Chrome'u devre dışı bırakılmış otomasyon bayrakları, özel bir kullanıcı aracısı ve sabit bir pencere boyutuyla yapılandırıyor.
Tarayıcıyı izlemek için önce headless=False ile başlayın, ardından durum stabil hale geldiğinde True olarak değiştirin.
İpucu: Tarayıcı otomasyon kütüphaneleri hızla gelişiyor. Selenium, 2026 yılında (4.40+ sürümleri de dahil olmak üzere) birçok güncelleme yayınladı; bu nedenle Selenium, ChromeDriver ve Chrome'un uyumlu sürümlerini sabitlemek, tarayıcı güncellemelerinden kaynaklanan veri çekme hatalarını önleyebilir.
Bölüm 2: Uygulama arama
Bu işlev, arama teriminize uyan uygulamaları Play Store'da arar ve uygulama adlarını ve URL'lerini çıkarır.
Bu fonksiyon, uygulamaları filtrelemek için &c=apps içeren bir arama URL'si oluşturur. Play Store'un URL kalıbı olan /store/apps/details?id= içeren bağlantıları arıyoruz. Uygulama kimliği URL'den alınır ve uygulama adı üstteki span etiketinden çekilir.
Eğer hiçbir isim bulunamazsa, uygulama kimliğine geri dönülür. max_apps parametresi, taranacak uygulama sayısını kontrol eder (varsayılan: 3, ancak 5, 10 veya daha fazlasına ayarlanabilir). search_term, kategoriyi tanımlar, örneğin, "ikinci el alışverişi", "fitness takibi" veya "fotoğraf düzenleme".
3. Adım: Yorumları ayıklama
Bu fonksiyon, uygulama sayfasına yönlendirir, "Tüm yorumları gör" seçeneğine tıklar, daha fazla yorum yüklemek için sayfayı aşağı kaydırır ve müşteri yorum verilerini çıkarır.
Bu işlev, mevcutsa "Tüm yorumları gör" seçeneğine tıklar ve ardından yorum öğelerinin toplanmasını bekler. Buton yoksa, kaydırma işlemine geri döner. Yorumlar, sınıra ulaşılana veya beş kaydırma işlemi yeni veri getirmeyene kadar toplanır.
Veri çekme aracı , yorum kimliğini, kullanıcı adını, derecelendirmeyi, tarihi ve yorumun tam metnini çıkarır ve mümkün olduğunda kısaltılmış yorumları genişletir.
CSS seçicileri:
- .RHo1pe → konteyneri incele
- .X5PpBb → kullanıcı adı
- .iXRFPc → derecelendirme (aria-etiketi)
- .bp9Aid → tarih
- .h3YV2d → inceleme metni
max_reviews parametresi, yorum sayısını kontrol eder (varsayılan 20, 50, 100 veya daha fazlasına ayarlanabilir).
Adım 4: Her şeyi bir araya getirmek
Bu işlevler, uygulama arama ve müşteri yorumu toplama iş akışını birleştirir ve sonuçları CSV dosyasına kaydeder.
Örnek çalıştırma
İş akışı, uygulamaları arar, yorumları toplar ve bunları bir CSV dosyasına kaydeder. Her yorum, uygulama adı, kimliği ve URL'si ile etiketlenir. Uygulamalar arasında üç saniyelik bir gecikme, hız sınırlamasını önler.
Varsayılan ayarlarla (3 uygulama × 10 yorum), komut dosyası 3-4 dakika içinde yaklaşık 30 yorum toplar. CSV dosyası uygulama adı, kimliği, URL'si, kullanıcı adı, derecelendirmesi, tarihi, yorum metni ve yorum kimliğini içerir.
Python kullanarak Yelp yorumlarını nasıl kazıyabilirsiniz (API kullanmadan)?
Adım 1: Tespit Önleme Sisteminin Kurulumu
Yelp, sahte ve yapay zeka tarafından oluşturulan yorumlara karşı yaptırımlarını artırdı. Yelp, en son Güvenlik ve Emniyet raporunda, yaklaşık 500.000 şüpheli yapay zeka tarafından oluşturulmuş yorumu filtrelediğini ve platform politikalarını ihlal eden 1 milyondan fazla hesabı kapattığını belirtti. Bu nedenle, Yelp'ten alınan yorum verileri, zaten denetim filtrelerinden geçmiş içeriği temsil etmektedir. 2
Yelp'ten veri çekmeyi ilk olarak temel Selenium kullanarak denediğimizde, hemen bir CAPTCHA ile karşılaştık. Yelp otomasyon sinyallerini algılıyor, bu nedenle temel kurulumlar başarısız oluyor.
Yaptığımız testler sonucunda Yelp'in belirli tarayıcı özelliklerini kontrol ettiğini tespit ettik. Chrome'un otomasyon işaretleri ve kullanıcı aracısı dizesi de otomasyonu ortaya çıkarabilir.
İşte işe yarayan kurulum:
En önemli atılım, ` navigator.webdriver` özelliğinin yeniden tanımlanmasıydı. Bu özelliği `undefined` döndürecek şekilde geçersiz kılmak, Selenium'un artık algılanmamasını sağlıyor. Özel bir kullanıcı aracısı dizesiyle birleştirildiğinde, bu tarayıcının gerçek bir kullanıcı gibi görünmesini sağlıyor.
Çalışmayı izlemek için headless=False ile başlayın. Sistem stabil hale geldiğinde, daha hızlı arka plan veri toplama için True'ya geçin.
Adım 2: İşletmeleri arama ve bulma
Yelp'in arama sonuçları aşamalı olarak yüklenir ve HTML, sık sık değişen dinamik sınıf adları kullanır. Bu durum, tam sınıf adlarına dayalı seçicilerin çalışmasını engeller.
İlk denemelerimizde "Daha fazla yorum gör" ve "Menüyü görüntüle" gibi alakasız bağlantılar yakalandı. Yalnızca gerçek işletme bağlantılarını hedeflemek için filtreleme eklendi.
Yelp sonuçları aşamalı olarak yüklediği için sayfayı birden fazla kez kaydırıyoruz. Veri toplama aracı, Yelp'in işletme sayfaları için kullandığı URL kalıbı olan /biz/ içeren bağlantıları toplar. Filtreleme, yalnızca geçerli işletmelerin dahil edilmesini sağlarken, yinelenenler ve üç karakterden kısa isimler atlanır.
`max_businesses` parametresi, kaç sonucun taranacağını kontrol eder. Test için 3 ile başlayın, ardından durum stabil hale geldiğinde artırın.
3. Adım: Yorumları ayıklama
Yelp'in en büyük sorunu kararsız HTML yapısıdır. Standart CSS seçicileri sıklıkla başarısız oluyor veya yanlış öğeleri döndürüyordu.
Chrome Geliştirici Araçları ile inceleme yaparak, sınıf adlarında "comment" geçen paragraf etiketlerinin içinde yorumlar bulduk. Bunların içinde, "raw" içeren span etiketleri gerçek yorum metnini içeriyor. Sınıf adları biraz değişse bile bu örüntü tutarlı kalıyor.
Bu yaklaşım , [class*=”comment”] ve [class*=”raw”] ile kısmi eşleştirme kullanır. Yelp'in tam sınıf adlarını sık sık değiştirmesi nedeniyle bu, web kazıma aracını daha dayanıklı hale getirir. Komut dosyası, yorum metnini, kullanıcı adını, derecelendirmeyi ve tarihi çıkarır.
Adım 4: Her şeyi bir araya getirmek
Şimdi her şeyi bir araya getirerek işletmeleri arayan, ürün yorumlarını toplayan ve sonuçları CSV dosyasına kaydeden bir iş akışı oluşturuyoruz.
Örnek çalıştırma
İşletmeler arasında iki saniyelik bir gecikme, hız sınırlamasını önler. Testlerde iki saniye güvenilir sonuç verdi, ancak küçük ölçekli işlemler için bunu bir saniyeye düşürebilir veya büyük ölçekli veri çekme işlemleri için 5 saniyeye çıkarabilirsiniz.
Her yorum, kaydedilmeden önce işletme adı ve URL'si ile etiketlenir; bu sayede kaynağı takip edebilirsiniz.
Varsayılan ayarlar olan 3 işletme ve her biri için 10 yorumla, komut dosyası 2-3 dakika içinde yaklaşık 30 yorum toplar. Sistem istikrarlı hale geldikten sonra, ölçeği büyütebilirsiniz:
- 10 işletme × her biri 20 yorum : ~10 dakikada ~200 yorum
- 20 işletme × her biri 50 yorum : ~15-20 dakika içinde ~1000 yorum
CSV dosyası, işletme adı, URL, kullanıcı adı, puanlama, tarih ve yorum metni için sütunlar içerir. Müşteri geri bildirimlerini analiz etmek için Excel'de açılabilir veya pandas'a aktarılabilir.
Python kullanarak Trustpilot yorumlarını nasıl kazıyabilirsiniz?
Trustpilot, sahte yorumları tespit etmek ve kaldırmak için otomatik sistemler kullanıyor. Güven Merkezi'ne göre, bu sistemler, platformda görünmeden önce şüpheli veya yapay zeka tarafından oluşturulmuş yorumları tespit etmek için yorum yazan kişiyi, işletmeyi ve yorum metnini analiz ediyor. 3
2026 yılında Trustpilot, platform güvenini artırmak, dolandırıcılığı önlemek ve yorum bütünlüğünü sağlamaktan sorumlu bir Baş Güven Sorumlusu atayarak yönetişimini güçlendirdi.
Adım 1: Şirketleri kurma ve arama
Gerekli kütüphaneler
Gerekli kütüphaneleri içe aktarıyoruz:
- İstekler : HTTP isteklerini işler.
- BeautifulSoup : Aldığımız HTML'i ayrıştırır.
- JSON : Verileri yapılandırılmış bir biçimde kaydeder.
- Zaman : Sunucunun aşırı yüklenmesini önlemek için gecikmeler ekler.
- urllib.parse'dan alıntı : URL'ler için arama terimlerini kodlar.
Arama fonksiyonu
Arama terimi, quote() ile URL kodlamasına tabi tutulur. Konum belirtilirse, parametre olarak eklenir. Özel başlıklar, engellemeyi azaltmak için gerçek bir tarayıcıyı taklit eder ve Windows'ta Chrome olduğumuzu belirten bir User-Agent dizesi içerir.
İsteği oluşturma ve sonuçları ayrıştırma
İstekleri başlıklarla birlikte gönderiyoruz ve sonuçları BeautifulSoup kullanarak ayrıştırıyoruz. Trustpilot sık sık sınıf adlarını değiştirdiği için birden fazla seçici tanımlanmıştır.
Her bir seçici, şirket sayfalarını işaretleyen /review/ ile başlayan bağlantıları hedef alır. Her bağlantıdan slug'ı (URL'deki benzersiz tanımlayıcı) çıkarır, okunabilir bir isme dönüştürür ve bulunan ilk üç şirketi döndürürüz.
Adım 2: Şirket sayfalarından yorum verilerini alma
Getirme fonksiyonunu inceleyin.
Bu fonksiyon, istenen sayıda yorum toplanana kadar sayfalar arasında döngü yapar. Tespit edilmeyi önlemek için her sayfa başlıklarla birlikte istenir ve sayfalama, sayfa parametresi artırılarak gerçekleştirilir.
İnceleme kartlarını çıkarma
Trustpilot'ın tasarımı sık sık değiştiği için birden fazla seçici deniyoruz. Her seçici, olası yorum kartı yapılarını hedefliyor. Hiçbiri eşleşmezse, veri toplamayı durduruyoruz.
Bireysel yorumları ayrıştırma
Her yorum için puanı, başlığı, yorum metnini, tarihi ve kullanıcı adını çıkarıyoruz. Esnek seçiciler ( lambda ifadeleriyle) kazıyıcıyı HTML değişikliklerine karşı dayanıklı hale getiriyor.
Her sayfayı işledikten sonra, time.sleep(2) kullanarak 2 saniyelik bir gecikme ekliyoruz. Bu, Trustpilot sunucularına saygılı olmak ve hız sınırlaması veya IP yasaklarından kaçınmak için çok önemlidir.
Adım 3: Ana program ve çıktı
Ana fonksiyon kurulumu
Bu ana fonksiyon, arama terimini, konumu ve yorum sınırını tanımlar. Konum herhangi bir ülke (örneğin, "Almanya") veya küresel sonuçlar için "Yok" olarak ayarlanabilir. Yedek fonksiyon, arama başarısız olsa bile işlevselliği sağlar.
Veri toplama ve kaydetme
Her şirketin yorumları, meta verilerle (URL, yorum sayısı) birlikte bir sözlükte saklanır. Trustpilot sunucularına saygı göstermek amacıyla şirketler arasında 2 saniyelik bir gecikme eklenir. Son olarak, sonuçlar UTF-8 kodlamasıyla bir JSON dosyasına kaydedilir.
Sonuçlar görüntüleniyor
Bu betik, tüm yorumların temiz bir özetini yazdırır. Her yorumda kullanıcı, puan, başlık ve metin bilgileri görüntülenir. ` .get()` yöntemi, eksik alanların varsayılan olarak ' N/A ' olarak ayarlanmasını sağlar. Son olarak, betik toplanan toplam yorum sayısını ve JSON dosya adını doğrular.
Son düşünceler
Play, Yelp ve Trustpilot'tan yorumları kazımak için Python'da farklı yaklaşımlar gerekiyordu. Her kazıyıcı, kullanıcı adları, puanlar, tarihler ve metin dahil olmak üzere CSV/JSON formatında yaklaşık 30 yorum dışa aktardı.
Teknik veri toplama zorluklarına ek olarak, inceleme platformları giderek artan bir şekilde yapay zeka denetleme sistemlerine, spam filtrelemeye ve olumsuz yorum bombardımanı önleme sistemlerine güvenmektedir. Bu sistemler, şüpheli yorumları görünür hale gelmeden önce kaldırabilir; bu da toplanan veri kümelerinin eksiksizliğini etkileyebilir.
Aşağıdaki karşılaştırma ölçütleri temel farklılıkları göstermektedir:
SSS'ler
Ürün yorumlarını manuel olarak toplamak yavaş ve eksiktir. Otomatik araçlar kullanarak müşteri yorumlarını toplamak, dakikalar içinde yüzlerce veya binlerce yorumu çıkarmanıza olanak tanır.
Bu, zamandan tasarruf sağlar ve veri toplama sürecinizin hem olumlu hem de olumsuz yorumları kapsamasını sağlar.
Toplanan müşteri yorumları, pazar araştırmaları için değerli müşteri içgörüleri sağlar. Şirketler, müşteri endişelerini takip edebilir, müşteri sadakatini ölçebilir ve zaman içinde müşteri tercihlerini analiz edebilir.
Çoğu inceleme platformu, otomatik veri çıkarma işlemlerine kısıtlamalar getirir. Web kazıyıcılarını çok agresif bir şekilde çalıştırmak , CAPTCHA'ya , IP engellemelerine veya yasaklamalara yol açabilir.
Riskleri azaltmak için, gerekirse hız sınırlamaları, rastgele gecikmeler ve yerleşik proxy'ler içeren saygılı bir otomatik süreç kullanın.
Tipik alanlar arasında yorum metni, yıldız derecelendirmeleri, kullanıcı adları, tarihler ve meta veriler bulunur. Bazı kurulumlar ayrıca konum, ürün kategorisi veya işletme türü gibi yapılandırılmış verileri de izler.
Müşteri yorumlarını e-ticaret platformları, sosyal medya ağları ve Amazon, Walmart, Yelp, Play ve Trustpilot gibi popüler platformlar da dahil olmak üzere çeşitli web sitelerinden toplayabilirsiniz.
Yorum yapan ilk kişi olun
E-posta adresiniz yayınlanmayacak. Tüm alanlar gereklidir.