Site Kazıma Önleme

Bir müşteri için, yıllar boyunca doğru ve yavaş bir şekilde topladıkları geniş bir bilgi veri tabanı görüntüledikleri bir web sitesi işletiyorum. Verilerini web'de çeşitli yerlerde buluyorlar. Muhtemelen bir kazıyıcı, site sayfalarını sayfalarına aktarıyor ve ihtiyaç duydukları bilgileri kendi veri tabanlarına aktarıyor. Ve merak ediyorsanız, kendi sitelerinde her kategorideki tek bir ekili veriden dolayı verilerinin olduğunu biliyorlar.

Son birkaç gündür bu konuda çok fazla araştırma yaptım ve size mükemmel bir çözüm bulunmadığını söyleyebilirim. Bununla birlikte, bunun için biraz daha zor hale getirmek için yapacak birkaç şey buldum. Bu müşteri için uygulamış olduğum şey.

Ajaxified paginated verileri

Çok fazla pürüzlü veriye sahipseniz ve verilerinizi URL'nizin sonuna farklı bir numara ekleyerek, yani http://www.domain.com/category/programming/2 adresine yazıyorsanız, o zaman tarayıcının işi bu kadar kolay. İlk sorun, kolay tanımlanabilir bir desende, bu sayfalarda bir kazıyıcı gevşek bir şekilde ayarlamak pasta gibi kolaydır. İkinci sorun, kategorideki sonraki sayfaların URL'sine bakılmaksızın, büyük olasılıkla, kendileri için bir sonraki ve bir önceki bağlantı olacaktır.

Sayfa yeniden yüklemeye gerek kalmadan javascript aracılığıyla paginated verileri yükleyerek, bu, işin içinde bir çok kazıyıcı için önemli ölçüde karmaşık hale getirir. Google sadece kısa bir süre önce javascript'i sayfada ayrıştırmaya başladı. Bu gibi verileri yeniden yüklemek için çok az dezavantaj var. Google’ın dizine eklenmesi için birkaç sayfa daha vermektesiniz, ancak teknik olarak, sayfalara ayrılmış veriler, her zaman kanonikleştirmeyle kök kategori sayfasına işaret etmelidir. Disk belleği verilmiş sayfalarınızı ajaxify.

Rasgele şablon çıktı

Kazıyıcılar genellikle verileriniz için özel olarak hafifçe özelleştirilir. Başlık için belirli bir div kimliği veya sınıfı, her satırdaki 3. hücre, açıklamanız için kilitlenir. Çoğu kazıyıcılar için aynı tablodan gelen çoğu veri ile birlikte çalışmak için kolayca tanımlanabilir bir model vardır. aynı şablon tarafından görüntülenir. Div id'lerinizi ve sınıf adlarınızı rastgele sıralayın, boş tablo sütunlarını 0 genişliğinde rastgele ekleyin. Verilerinizi bir sayfada, stillenmiş div'larda ve başka bir şablondaki bir kombinasyonda gösterin. Verilerinizi tahmin edilebilir şekilde sunarak, tahmin edilebilir ve doğru bir şekilde kazıma yapılabilir.

Bal küpü

Bu sadeliği oldukça güzel. Site kazımalarını önlemeyle ilgili birkaç sayfada bu yönteme rastladım.

  • Gotcha.html adlı sunucunuzda yeni bir dosya oluşturun.
  • Robots.txt dosyanıza şunları ekleyin:
    Kullanıcı aracı: *
    Disallow: /gotcha.html
    Bu, var olan tüm robotlara ve örümceklere, sitenizi gotcha.html dosyasını dizine eklememek için endekslediğini söyler. Herhangi bir normal web tarayıcısı, robots.txt dosyanızın isteklerine saygı gösterir ve bu dosyaya erişemez. ör. Google ve Bing. Bu adımı gerçekten uygulamak isteyebilirsiniz ve bir sonraki adıma geçmeden önce 24 saat bekleyin. Bu, robots.txt dosyanızı güncellediğinizde zaten tarayıcının ortada gezinmesi nedeniyle bir tarayıcının yanlışlıkla engellenmemesini sağlayacaktır.
  • Sitenizde bir yere gotcha.html bağlantısını yerleştirin. Nerede olduğu önemli değil. Altbilgiyi öneriyorum, ancak CSS'de bu bağlantının görünmediğinden emin olun: none;
  • Şimdi, bu sayfayı ziyaret eden ve bunları engelleyen perp'nin IP / genel bilgilerini kaydedin. Alternatif olarak, onlara yanlış ve çöp verisi sağlamak için bir komut dosyası ile gelebilirsiniz. Ya da sizden onlara güzel bir kişisel mesaj.

Düzenli web görüntüleyenleri bağlantıyı göremez, dolayısıyla yanlışlıkla tıklanmaz. Saygın tarayıcılar (örneğin Google), robots.txt dosyanızın isteklerine saygı gösterecek ve dosyayı ziyaret etmeyecektir. Bu nedenle, bu sayfada rastlayacağınız tek bilgisayarlar, kötü niyetli niyetleri olan veya kaynak kodunuzu görüntüleyen ve rastgele tıklayan kişilerdir.

Bunun her zaman işe yaramayacağını gösteren birkaç sebep vardır. İlk olarak, bir çok kazıyıcı normal web tarayıcıları gibi çalışmıyor ve sitenizdeki her sayfanın her bağlantısını takip ederek verileri keşfetmiyor. Kazıyıcılar genellikle belirli sayfalarda sabitlemek ve yalnızca belirli yapıları takip etmek için üretilir. Örneğin, bir kazıyıcı bir kategori sayfasında başlatılabilir ve daha sonra yalnızca sümükteki kelime / veri içeren URL'leri ziyaret etmek için anlatılır. İkincisi, birisi kazıyıcılarını diğerleriyle aynı ağ üzerinde çalıştırıyorsa ve paylaşılan bir IP kullanılıyorsa, tüm ağı yasaklamış olursunuz. Bunun bir sorun olması için çok popüler bir web sitesine sahip olmanız gerekir.

Verileri resimlere anında yaz

Daha küçük bir veri alanı bulun, uzun metin dizeleri değil, bu sayfa biraz daha zor hale getirebilir. Bu verinin bir resmin içinde çıktısını aldığımda, hemen hemen her programlama dilinde bir görüntüye dinamik olarak (php, imagettftext) metin yazmak için yöntemler olduğu konusunda oldukça eminim. Rakamlar çok daha önemsiz bir SEO avantajı sağladığından, bu sayısal değerlerle muhtemelen en etkili olanıdır.

Alternatif

Bu proje için bir seçenek değildi. Belirli bir sayfa görüntülemesinden sonra giriş yapmak veya giriş yapmadan sınırlı miktarda veri görüntülemek. Örneğin, 10 sütuna sahipseniz, yalnızca giriş yapamayan kullanıcılara 5'i gösterin.

Bu hatayı yapma

Botun kullanıcı aracısına dayalı bir çözüm bulmaya çalışmaktan çekinmeyin. Bu bilgi, ne yaptığını bilen bir kazıyıcı tarafından kolayca taklit edilebilir. Google botu örneğin kolayca taklit edilebilir. Muhtemelen Google’ı yasaklamak istemezsiniz.

Ayrıca Bkz