Semalt İnceleme: Eğlence ve Kâr İçin Web Scraping
API gerektirmeden site kazıması yapabilirsiniz. Site sahipleri kazıma işlemini durdurma konusunda agresifken, API'lara daha az önem veriyorlar ve bunun yerine web sitelerine daha fazla önem veriyorlar. Birçok sitenin otomatik erişime karşı yeterince koruma sağlamadığı gerçeği, kazıyıcılar için bir boşluk oluşturur. Bazı basit çözümler ihtiyacınız olan verileri toplamanıza yardımcı olacaktır.
Kazımaya Başlarken
Kazıma, ihtiyacınız olan verilerin yapısını ve erişilebilirliğini anlamayı gerektirir. Bu, verilerinizi getirerek başlar. İhtiyacınız olan bilgileri döndüren URL'yi bulun. Web sitesine göz atın ve farklı bölümlerde gezinirken URL'lerin nasıl değiştiğini kontrol edin.
Alternatif olarak, sitede birkaç terimi arayın ve URL'lerin arama teriminize göre nasıl değiştiğini kontrol edin. Yeni bir terim aradığınızda değişen q = gibi bir GET parametresi görmelisiniz. Verilerinizi yüklemek için gerekli GET parametrelerini koruyun ve diğerlerini kaldırın.
Sayfalandırma ile Nasıl Başa Çıkılır?
Sayfalandırma, ihtiyacınız olan tüm verilere bir kerede erişmenizi engeller. Sayfa 2'yi tıklattığınızda, URL'ye bir offset = parametresi eklenir. Bu, bir sayfadaki öğe sayısı veya sayfa numarasıdır. Verilerinizin her sayfasında bu sayıyı artırın.
AJAX kullanan siteler için Firebug veya Inspector'daki ağ sekmesini yukarı çekin. XHR isteklerini kontrol edin, verilerinizi çekenleri belirleyin ve bunlara odaklanın.
Sayfa İşaretlemesinden Veri Al
Bu, CSS kancaları kullanılarak elde edilir. Verilerinizin belirli bir bölümünü sağ tıklayın. Firebug veya Inspector'ı çekin ve tek bir öğeyi saran en üst <div> değerini almak için DOM ağacını yakınlaştırın. DOM ağacından doğru düğüme sahip olduğunuzda, öğelerinize ham HTML'de erişilebilir olduğundan emin olmak için sayfa kaynağını görüntüleyin.
Site kazımayı başarılı bir şekilde yapmak için, HTML'de okunan ve ihtiyacınız olanı alana kadar yineleyebileceğiniz bir nesneye dönüştüren bir HTML ayrıştırma kitaplığına ihtiyacınız vardır. HTTP kitaplığınız bazı çerezler veya başlıklar ayarlamanızı gerektiriyorsa, web tarayıcınızda siteye göz atın ve başlıkları tarayıcınız tarafından gönderin. Bunları bir sözlüğe koyun ve isteğinizle iletin.
Scrape İçin Giriş Yapmanız Gerektiğinde
İstediğiniz verileri almak için bir hesap oluşturmanız ve giriş yapmanız gerekiyorsa, girişleri işlemek için iyi bir HTTP kütüphanesine sahip olmanız gerekir. Kazıyıcı girişi sizi üçüncü taraf sitelere maruz bırakır.
Web hizmetinizin ücret sınırı IP adresine bağlıysa, web hizmetini istemci tarafı Javascript'e isabet eden bir kod ayarlayın. Ardından, sonuçları her istemciden sunucunuza geri iletin. Sonuçlar pek çok yerden geliyor gibi görünecek ve hiçbiri ücret sınırlarını aşmayacak.
Kötü Biçimlendirilmiş İşaretleme
Bazı biçimlendirmelerin doğrulanması zor olabilir. Bu gibi durumlarda, hata toleransı ayarları için HTML ayrıştırıcınızı inceleyin. Alternatif olarak, tüm HTML belgesine uzun bir dize gibi davranın ve dize bölünmesi yapın.
Bazı siteler kazıma durdurmak için yazılım kullanır ve diğer web hurda yasaklar. Bu tür siteler size dava açabilir ve hatta verilerini toplamak için hapse bile girebilir. Yani tüm web kazıma akıllı olun ve güvenle yapın.