En İyi Açık Kaynak Web Kazıma Araçları
Geçmişte ziyaret ettiğiniz bir siteden bazı metinleri kopyalayıp yapıştırdığınızdan eminiz: bunun bir adı olduğunu biliyor muydunuz? 7Slots Casino gibi bir internet kumarhane sitesinde basit bir metni kopyalayıp yapıştırmaya bile "web kazıma" adı verilir ve bu, internetin ortaya çıkışından beri yapılmaktadır. Ancak artık "manuel" olarak değil, çok daha büyük ölçekte ve özel yazılım sayesinde neredeyse tamamen otomatik olarak yapılıyor. Bu yazıda web scraping'in ne olduğunu kısaca açıklayacağız ve bunun için kullanabileceğiniz en iyi açık kaynaklı yazılımlardan bazılarını listeleyeceğiz.
Web Kazıma Nedir?
Bu teknik aynı zamanda “web hasat” ve “web veri çıkarma” olarak da bilinir. En basit tanımıyla web scraping, bir web sitesinden veri çıkarmak anlamına gelir. Örneğin bir web sayfasını ziyaret ederken Ctrl + S kısayolunu kullanırsanız o sayfayı nereye kaydetmek istediğinizi soran bir pencere açılacaktır. Bunu yaptığınızda, o sayfayı çevrimdışı erişim için bilgisayarınıza kaydedersiniz. Web kazıma araçları tam da bunu yapar, ancak bunlar tamamen otomatiktir ve çok daha büyük ölçekte çalışır.
Web kazıma birçok farklı amaç için yapılabilir. Bu teknikle örneğin tüm telefon numaralarını ve e-posta adreslerini bir siteye kaydedebilir, farklı kaynaklardan gelen hava durumu bilgilerini birleştirebilir veya tüm görüntü dosyalarını bir siteye kaydedebilirsiniz. Web kazıma araçları size yalnızca web sitelerinden verilere erişme ve bu verilerden veri çıkarma fırsatı verir: bu bilgilerle ne yapacağınız size bağlıdır. Ve elbette yapabilecekleriniz kullandığınız aracın yeteneklerine bağlıdır. Aşağıda en iyi açık kaynaklı web kazıma araçlarının bir listesini bulacaksınız.
Scrappy
Bu araç Python ile oluşturuldu ve şu anda piyasadaki en popüler seçenektir. Scrappy çok hızlı çalışır ve her zaman stabildir. Daha da önemlisi, yeni başlayanlar için çok sayıda yardım dosyası ve adım adım kılavuz bulunmaktadır. İndirdiğiniz verilerinizi JSON, XML ve CSV formatlarında kaydedebilirsiniz. Çok sayıda eklentiye sahip olduğundan ana program dosyalarını değiştirmeye gerek kalmadan yeni işlevler ekleyebilirsiniz. Kullanıcı tabanı çok faydalıdır ve yeni başlayanların tüm sorularına yanıt verir.
Heritrix
Bu araç JAVA ile oluşturulmuş olup en büyük avantajı web tabanlı bir arayüze sahip olmasıdır. Yani internet bağlantınız olduğu sürece her cihazdan ve her yerden kullanabilirsiniz. Heritrix'in takılabilir modülleri vardır ve bunları kullanarak farklı işlevler elde edebilirsiniz. Ancak bu aracın belki de en dikkat çekici özelliği “site dostu olması”: Heritrix, veri toplarken robot.txt hariç tutma talimatlarına uyuyor ve sitenin normal faaliyetlerine müdahale etmeyecek şekilde çalışıyor. Bu önemlidir, çünkü piyasadaki birçok web kazıma aracı veri toplarken çok "kaba" davranır ve siteyi neredeyse kullanılamaz hale getirir.
Web Harvest
Bu piyasadaki en eski araçlardan biridir. Web Harvest, JAVA ile oluşturulmuştur ve yeni başlayanlar için iyi bir seçenek değildir. Tartışmasız güçlü bir araçtır ancak fonksiyonlarının çoğuna erişebilmek için kodlama dillerini bilmeniz gerekir. Web Harvest, XSLT, XQuery ve Regular Expressions gibi tekniklerle veri toplar ve özel JAVA kütüphanelerini kullanarak ona birçok farklı yetenek kazandırabilirsiniz. Aynı şekilde, kendi scriptlerinizle piyasadaki diğer web kazıma araçlarının yapamadığı hemen hemen her şeyi yapmasını sağlayabilirsiniz. Web Harvest çok güçlü bir araçtır ve en iyiler arasındadır, ancak onu etkili bir şekilde kullanmak için ne yaptığınızı bilmeniz gerekir.
Mechanical Soup
Bu çok ilginç bir araçtır çünkü çalışırken siteyle insan etkileşimini taklit etmeye çalışır. Yani bir "robot" gibi davranmıyor. Mechanical Soup, HTTP oturumları için REQUESTS ve belge navigasyonu için BeautifulSoup adı verilen özel kitaplıkları kullanan bir dizi Python kitaplığından oluşur. Tıpkı gerçek bir insan gibi bağlantılara tıklar, yönlendirme komutlarını takip eder ve formları doldurur. Her ne kadar kazıma aleti olarak tasarlanmış olsa da bu yetenekleri sayesinde başka amaçlarla da kullanılabilmektedir. Çalışma şekli nedeniyle çok hızlı değildir ancak başka türlü bulunamayacak verilere erişebilir ve CSS ve XPath seçicilerini destekler.
Apify SDK
Bu araç JavaScript ile oluşturulmuştur ve büyük ölçekli web kazıma projeleri için piyasadaki en iyi seçenek olabilir. “Apify Cloud” adı verilen kendi proxy ağına sahiptir, böylece IP yasakları gibi basit bloklardan kaçınabilir. Node.js eklentilerini kullanmak mümkün ve bu sayede Cheerio ve Puppeteer gibi çok güçlü araçlara erişim sağlayabilirsiniz. Aynı anda birden fazla URL ile başlayabilir ve hedef sayfalardaki tüm bağlantıları aynı anda takip edebilirsiniz. Projeniz ne kadar büyük olursa olsun ölçeklenebilir scraping kütüphanesi sayesinde size uyum sağlayabilir.