Harita üzerinden firma listesi çıkaran araçların çoğu aynı yerde tıkanır: tek bir arama belirli sayıda kayıt döndürür, liste durur ve elinizde kalanın ne kadarının o bölgeyi temsil ettiğini kimse söylemez. Bu sayfa kaç kayıt çektiğimizi değil, taramanın kapsamını nasıl ölçtüğümüzü ve nerede durduğunu size nasıl gösterdiğimizi anlatıyor. Yöntemin adı kapsam mühendisliği: aramayı il, ilçe ve mahalle ızgarasına bölmek, kategori alt kırılımlarını açmak ve her hücrenin doygunluğunu ayrı ayrı takip etmek.
Harita servisinde bir kategoriyi il adıyla arattığınızda arayüz size o bölgedeki her kaydı değil, o sorgu için ayrılmış bir sonuç penceresini gösterir. Liste kaydırıldıkça yeni kayıtlar yüklenir, sonra bir noktada yüklenme durur. Ekranda bir uyarı çıkmaz; sadece akış biter. Bu noktada iki farklı durum aynı görünür: gerçekten o bölgede başka işletme olmaması ile sorgunun tavana dayanması. İkisini ayırt edemediğiniz sürece elinizdeki listenin eksiklik oranını bilemezsiniz. Kolay bir sınama var: aynı kategoriyi bu kez tek bir ilçe adıyla aratın. Merkez ilçelerde ilk listede hiç görünmemiş onlarca işletmenin çıkması olağandır. Aynı sınamayı mahalle adıyla tekrarladığınızda liste bir kez daha uzar. Veri eksik değildir, aramanın kapsamı dardır. Bu yüzden programın işi kayıt saymak değil, sorguyu doğru parçalara bölmektir. Bölme işlemi rastgele değil, kayıt yoğunluğuna göre yapılır: bir hücre tavana dayanıyorsa o hücre daha küçük parçaya ayrılır, dayanmıyorsa olduğu gibi bırakılır. Sonuçta ortaya çıkan şey bir liste değil, kapsanan ve kapsanmayan alanları ayrı ayrı işaretlenmiş bir tarama haritasıdır.
Tarama planı üç kademeli bir ağaç gibi kurulur. En üstte il vardır ve bu kademe genellikle sadece iskelet görevi görür; gerçek iş ilçe kademesinde başlar. Program önce ilin ilçe listesini iş kuyruğuna alır, her ilçe için ayrı bir sorgu görevi oluşturur. Bir ilçe görevinin dönüşü tavan sınırına yakınsa o görev otomatik olarak mahalle kademesine açılır ve tek görev yerine mahalle sayısı kadar görev doğar. Yoğun olmayan ilçelerde bu açılma hiç gerçekleşmez, boşuna sorgu yapılmaz. Kademeler arasında geçişi tetikleyen şey sizin tahmininiz değil, önceki adımın gerçek çıktısıdır. Bu yaklaşımın pratik faydası şudur: küçük bir Anadolu ilçesini mahalle mahalle taramak için harcanan süreyi metropol ilçelerine aktarırsınız. Kuyruk ekranında hangi ilçenin kaç göreve bölündüğünü, hangisinin tek görevle kapandığını görürsünüz. Bir ilçenin beklediğinizden çok daha az göreve bölünmesi genellikle kategori seçiminin dar kaldığına işarettir ve bu da düzeltilebilir bir durumdur.
Coğrafi bölme tek başına yetmez. Geniş kategoriler kendi içlerinde tavan üretir. Bir ilçede lokanta aratmak ile kebap salonu, pide fırını, ev yemekleri, balık restoranı, kafe ve pastane aramalarını ayrı ayrı yapmak farklı sonuçlar verir; çünkü işletmeler haritada kendi alt kategorileriyle etiketlidir ve geniş sorgu bunların hepsini eşit ağırlıkla getirmez. Program bu yüzden ikinci bir eksende çalışır: her coğrafi hücre, seçtiğiniz kategori kırılımlarının tamamıyla çarpılır. Hesap basittir; 20 ilçelik bir ilde 8 kategori kırılımı kullanıyorsanız 160 görevlik bir kuyruk oluşur, bu görevlerin yoğun olanları mahalleye açılırsa sayı daha da artar. Kırılım listesini kendiniz düzenleyebilirsiniz. Sektörünüzü iyi biliyorsanız listeyi elle zenginleştirmek en hızlı kapsam kazancını verir; çünkü meslek jargonunda kullanılan adlar çoğu zaman genel kategori adlarından daha isabetli sonuç döndürür. Aynı işletmenin birden fazla kırılımda çıkması normaldir, mükerrer temizliği bu yüzden taramanın değil birleştirme adımının işidir.
Her görev tamamlandığında iki bilgi kaydedilir: dönen kayıt sayısı ve görevin neden durduğu. Durma nedeni üç değerden biridir. Liste kendiliğinden bittiyse görev doğal kapanmıştır, o hücre için kapsam tamdır. Liste tavan sınırına dayanarak durduysa görev doygun sayılır ve alt kademeye bölünmek üzere işaretlenir. Görev bir hata veya kesinti nedeniyle durduysa yarım kalmış sayılır ve tekrar denenmek üzere kuyruğa geri konur. Bu üçlü ayrım sayesinde tarama sonunda elinizde tek bir toplam yerine anlamlı bir dağılım olur: kaç hücre doğal kapandı, kaç hücre bölünerek çözüldü, kaç hücre hâlâ çözülmemiş durumda. Kapsam iddiası ancak bu dağılıma bakılarak kurulabilir. Doğal kapanan hücre oranı yüksekse taramanın o bölge için eksiksize yakın olduğunu söyleyebilirsiniz. Çözülmemiş hücre kaldıysa liste eksiktir ve program bunu gizlemek yerine ayrı bir başlık altında listeler. Ölçemediğiniz bir kapsamı iddia etmemek, iddia edip yanılmaktan daha kullanışlıdır.
Tarama boyunca ekranda üç şey aynı anda görünür: tamamlanan görev sayısı, kuyrukta bekleyen görev sayısı ve o ana kadar biriken benzersiz kayıt sayısı. Tarama bittiğinde bu üçlü bir rapora dönüşür. Raporun en çok işe yarayan bölümü atlanan bölge listesidir; burada hangi ilçe veya mahallenin hangi kategori kırılımında çözülmeden kaldığı satır satır yazar. Bu liste boş çıkarsa taramanız planladığınız ızgarayı bütünüyle kapsamış demektir. Boş çıkmazsa elinizde somut bir yapılacaklar listesi olur: yalnızca o satırları yeniden çalıştırırsınız, tüm ili baştan taramanız gerekmez. Rapor ayrıca kategori kırılımı bazında kayıt dağılımını da gösterir. Bir kırılımın sıfıra yakın dönmesi genellikle yazım hatasına veya o bölgede gerçekten o alt kategorinin bulunmamasına işaret eder; ikisini ayırmak için aynı kırılımı komşu ilçede denemek yeterlidir. Rapor Excel çıktısına ayrı bir sayfa olarak eklenir; dosyayı açan kişi hangi satırın hangi hücreden geldiğini ve hangi hücrelerin hiç çalışmadığını aynı dosya içinde görür.
Tarama hızı, kuyruğun ne kadar sürede biteceğini belirleyen tek değişken değildir. Gezinme temposu yükseldikçe liste yüklemeleri yarım kalır, bazı sorgular boş döner ve oturum beklenmedik anlarda kesilir; bu görevler kuyruğa geri döndüğü için kazanılan saniyeler yeniden çalıştırma süresine dönüşür. Program bu nedenle sayfalar arasında bekleme aralıkları bırakır, listeyi insan hızında kaydırır ve eşzamanlı görev sayısını sınırlı tutar. Bu bir kısıtlama değil, kapsam lehine verilmiş bir tasarım kararıdır. Kapsam alanı da aynı çerçevede dardır: program yalnızca oturum açmadan görüntülenebilen işletme kayıtlarını okur, kapalı alanlara giriş yapmaz ve erişim kısıtlarını aşmaya yönelik bir işlev barındırmaz. Topladığınız verinin kullanımı ise sizin sorumluluğunuzdadır: kişisel veri niteliği taşıyan alanlarda KVKK yükümlülükleri, ilgili sitenin kullanım şartları ve ticari iletişim için İYS kayıtları geçerliliğini korur. Kapsam mühendisliği bu sınırların içinde çalışmayı hedefler, dışına çıkmayı değil.
Ham tarama çıktısı doğrudan kullanıma hazır değildir. Aynı işletme farklı kategori kırılımlarında ve komşu mahalle hücrelerinde tekrar tekrar çıkar. Birleştirme adımı bu kayıtları tek satıra indirir; eşleştirme yalnızca isme değil, konum yakınlığına ve normalize edilmiş telefon numarasına birlikte bakılarak yapılır. Telefon alanı ülke kodu, boşluk ve parantez farklılıklarından arındırılıp tek biçime getirilir, aksi hâlde aynı numaranın üç ayrı yazımı üç ayrı işletme gibi görünür. Çıktı dosyasında işletme adı, kategori, adres, ilçe, mahalle, telefon, varsa web adresi, puan ve yorum sayısı ile kaydın hangi ızgara hücresinden geldiği yer alır. Son sütun çoğu kullanıcının başta önemsemediği ama sonradan en çok başvurduğu alandır: bir bölgeyi ekibe dağıtırken veya bir kırılımı yeniden taratırken kaydın kaynağını bilmek işi kolaylaştırır. Dosya Excel ve CSV olarak alınabilir; sütun düzeni sabittir, böylece aynı şablonu her tarama için tekrar kullanabilirsiniz.
Her iş için üç kademeli ızgara kurmak gerekmez; kurmak gereksiz yere süre harcatır. Karar için üç soruya bakın. Birincisi hedef bölgenin büyüklüğü: tek bir ilçede çalışıyorsanız ilçe kademesi çoğu zaman yeterlidir, mahalleye inmek ancak o ilçe metropol merkeziyse anlam kazanır. İkincisi kategorinin yoğunluğu: bölgede o kategoriden az sayıda işletme varsa tek sorgu zaten doğal kapanışla biter ve bölmeye gerek kalmaz. Üçüncüsü listenin kullanım amacı: liste bir saha ekibine bölge bölge dağıtılacaksa hücre bilgisi zaten gereklidir, sadece bir fikir edinmek için bakılacaksa kabaca tarama yeterlidir. Pratikte en çok yapılan hata ikinci soruyu atlamaktır: seyrek bir kategoride mahalle kademesini açmak görev sayısını mahalle adedince çarpar, buna karşılık listeye eklenen kayıt neredeyse yoktur. Program bu kararı sizin yerinize kısmen verir çünkü mahalleye açılma yalnızca doygun hücrelerde tetiklenir. Yine de kategori kırılımı listesini ve hedef ilçe seçimini siz belirlediğiniz için, plan aşamasında bu üç soruyu geçmek en kısa yoldur.
Sabit bir sayı vermek doğru olmaz; bu sınır arama servisinin kendi davranışına ve bölgeye göre değişir. Önemli olan sınırın kaç olduğu değil, sınıra dayanıldığının fark edilmesidir. Program bir görevin listeyi bitirerek mi yoksa tavana dayanarak mı durduğunu ayrı ayrı kaydeder ve tavana dayanan görevi alt kademeye böler. Böylece sınır, kapsamın önünde engel olmaktan çıkar.
Süre görev sayısına bağlıdır ve görev sayısı ilçe sayısı ile kategori kırılımı sayısının çarpımından çıkar. 20 ilçe ve 8 kırılım seçtiyseniz 160 görevle başlarsınız; yoğun ilçeler mahalleye açıldıkça bu sayı artar. Kendi süre tahmininizi yapmak için birkaç görevi çalıştırıp ortalama görev süresini ölçün ve toplam görev sayısıyla çarpın. Bu hesap, genel bir vaatten çok daha güvenilir sonuç verir.
Hayır. İş kuyruğu görev bazında tutulduğu için tamamlanan görevler işaretli kalır ve tarama kaldığı yerden devam eder. Yarım kalan görev kuyruğa geri konur, tamamlananlar tekrar çalıştırılmaz. Bu davranışın nasıl kurulduğunu ve kesintilerin tipik nedenlerini il ilçe bazlı tarama sayfasında ayrıntılı anlattık.
Hata değil, beklenen bir durum. Bir işletme hem birden çok kategori kırılımında hem de komşu mahalle hücrelerinde görünebilir. Ham tarama bunları olduğu gibi kaydeder, birleştirme adımı tek satıra indirir. Eşleştirme isim benzerliği, konum yakınlığı ve normalize edilmiş telefon numarasına birlikte bakar; yalnızca isme bakan bir eşleştirme şube adlarında yanlış birleştirme yapar.
Evet ve genellikle en hızlı kapsam kazancı buradan gelir. Hazır kırılım listesi genel adlarla çalışır; sektörünüzde fiilen kullanılan adları eklediğinizde haritada o adla etiketlenmiş işletmeler de listeye girer. Yeni bir kırılımın işe yarayıp yaramadığını anlamak için tek bir ilçede deneyin, dönen kayıt sayısına bakın, sonra tüm ızgaraya yayın.
Taramanın nerede durduğunu gösteren tek somut çıktı bu listedir. Hangi ilçe veya mahallenin hangi kırılımda çözülmeden kaldığını satır satır yazar. Listeyi doğrudan yeni bir tarama planı olarak çalıştırabilirsiniz; ili baştan taramanıza gerek kalmaz. Liste boş dönüyorsa planladığınız ızgarayı bütünüyle kapsadınız demektir.
Hazır listelerin temel sorunu tarihidir; işletme açılışları, kapanışları ve numara değişiklikleri listeyi hızla eskitir. Kendi taramanızda verinin ne zaman toplandığını bilirsiniz, kapsamın sınırlarını görürsünüz ve istediğiniz kırılımı istediğiniz anda tekrarlayabilirsiniz. İki yaklaşımın maliyet ve güncellik karşılaştırmasını ayrı bir sayfada ele aldık.
Verinin herkese açık kaynaktan gelmiş olması, her amaçla kullanılabileceği anlamına gelmez. Bir işletmenin santral numarası ile ortağın kendi cep numarası aynı çerçevede değerlendirilmez; ikincisi kişisel veri niteliği taşır ve KVKK yükümlülükleri devreye girer. Ticari elektronik ileti tarafında ise ayrıca onay ve kayıt rejimi işler. Program veriyi toplayıp düzenler; hangi kaydı hangi amaçla kullanacağınız kararı ve sorumluluğu sizde kalır. Ayrıntıları ilgili mevzuat sayfalarında ele alıyoruz.
Evet. Web adresi çıktı sütunlarından biri olduğu için bu alanı boş olan kayıtları filtrelemek yeterlidir. Web sitesi olmayan işletmeler dijital hizmet satan ekipler için doğal bir hedef listesi oluşturur; bu listeyi kurmanın pratik adımlarını ayrı bir sayfada anlattık.
Program masaüstünde çalışır ve tarayıcı penceresini kendi kontrol eder. Aynı anda başka işler yapabilirsiniz, ancak taramanın yürüdüğü pencereyi kapatmamak veya küçültülmüş hâlde bırakmak gerekir. Bilgisayarın uyku moduna geçmesi taramayı duraklatır; uzun taramalarda güç ayarlarını kontrol etmek en sık atlanan noktadır.