Web Tarama Botunun Doğuşu – PromptCloud

Yayınlanan: 2019-02-27
İçindekiler gösterisi
Aşama 1. Sitenin insan kullanıcılara nasıl tepki verdiğini anlamak
Aşama 2. Sitenin bir botla nasıl davrandığını anlamak
Aşama 3. Botu inşa etmek
Aşama 4. Botun teste tabi tutulması
Aşama 5. Veri noktalarının çıkarılması ve veri işleme

Web tarama botları, bir süredir işletmelerin başarısında zorunlu bir bileşen olmuştur. E-ticaret, Seyahat, İş İlanları ve İlanlar, rekabet stratejilerinin merkezinde tarayıcı botları kullanan başlıca alanlardan bazılarıdır.

Peki web tarama botları aslında ne yapar? Çoğunlukla, bir web sitesindeki yüz binlerce sayfa arasında gezinerek, web'deki tam amacına bağlı olarak önemli bilgi parçalarını getirirler. Bazı botlar, e-ticaret portallarından fiyat verilerini almak için tasarlanmıştır, bazıları ise Çevrimiçi Seyahat Acentelerinden müşteri yorumları çıkarır. Ayrıca, AI mühendislerine Doğal Dil İşleme için metin külliyatı oluşturmada yardımcı olmak için kullanıcı tarafından oluşturulan içeriği toplamak üzere tasarlanmış botlar vardır.

Tüm bu kullanım durumlarında, hedef web sitesi için, o siteden çıkarması gereken veri noktalarına dayalı olarak sıfırdan bir web tarama botu oluşturulmalıdır. PromptCloud'da, çeşitli endüstriler ve kullanım durumları için çeşitli karmaşıklıklarda botlar oluşturuyoruz. Web taramasında uzun yıllara dayanan uzmanlığımızla, bot oluşturma işlemini daha kolay ve daha akıcı hale getiren adım adım bir süreç formüle ettik. Bir web tarama botunun oluşturulmasıyla ilgili adımları hızlıca gözden geçirelim.

Aşama 1. Sitenin insan kullanıcılara nasıl tepki verdiğini anlamak

Yeni bir web sitesini taramak için bir bot oluşturmadan önce, sitenin gerçek bir insanla nasıl etkileşime girdiğini bilmeliyiz. Bu aşamada mühendislerimiz, Google Chrome veya Mozilla Firefox gibi normal bir tarayıcı kullanarak sitede gezinme hakkında fikir edinmek için yeni hedef web sitesini bir tur atar. Bu, sunucunun gelen bir isteği nasıl gördüğünü ve işlediğini ortaya çıkaran tarayıcı-sunucu etkileşimine biraz ışık tutar. Tipik olarak, http aracılığıyla istek başlıkları ve istek türleri ile oynamayı içerir. Bu, botun bir şekilde hedef web sitesinde gerçek bir kullanıcıyı taklit edeceğinden, botu oluşturmak için temel oluşturur.

Aşama 2. Sitenin bir botla nasıl davrandığını anlamak

İkinci adımın bir parçası olarak, mühendislerimiz, sitenin bir botla insan kullanıcıya kıyasla ne kadar farklı etkileşimde bulunduğunu anlamak için otomatik bir şekilde bazı test trafiği gönderecektir. Çoğu modern web sitesinde botlarla farklı şekilde başa çıkmak için belirli yerleşik mekanizmalar bulunduğundan bu gereklidir. Bu mekanizmaları anlamak, botu oluşturmak için en iyi eylem yolunu seçmemize yardımcı olacaktır. Bazı yaygın örnekler şunlardır:

  • Site, örneğin 20 sayfadan sonra normal gezinmeyi sınırlar
  • İstek, bir 301 durum kodu döndürür
  • Site yanıt olarak bir captcha atar
  • Sunucu bir 403 durum kodu döndürür - bu, sitenin anlamasına rağmen isteğimizi yerine getirmeyi reddettiği anlamına gelir
  • Belirli bir coğrafyadan kısıtlı erişim (Proxy'lerin resme girdiği yer burasıdır)

Çoğu web sitesi iki yüzlüdür, insan kullanıcılara ve botlara farklı davranırlar - savunmalarında onları kötü botlardan ve çeşitli siber saldırı biçimlerinden korur. Bir noktada, belirli bir sayfaya veya özelliğe erişmek için insanlığınızı kanıtlamanızı isteyen bir web sitesine rastlamış olabilirsiniz. Botlar bununla çok karşılaşıyor. Bu nedenle, siteyi bir botun bakış açısından tamamen anlamak için bu testi yapıyoruz.

Ayrıca, belirli bir web sitesini taramak için bot oluşturmaya yönelik en iyi yaklaşımı belirlemek için kullanılan otomatik bir katmanımız da var. Devrilme noktalarını tespit etmek için sitede hafif bir stres testi yapar ve ardından Uyku, Proxy/Proxy Yok, Captcha, Olası paralel istek sayısı ve daha fazlası gibi tarayıcı botu yapmaya giden bazı önemli bilgileri döndürür.

Aşama 3. Botu inşa etmek

Mühendislerimiz hedef sitenin net bir planını elde ettikten sonra, tarayıcı botunu oluşturmaya başlamanın zamanı geldi. Yapının karmaşıklığı, önceki testlerimizin sonuçlarına bağlı olacaktır. Örneğin, hedef siteye yalnızca Almanya'dan erişilebiliyorsa, siteyi almak için bir Alman proxy'si eklememiz gerekecek. Aynı şekilde, sitenin özel taleplerine bağlı olarak, bir botta birlikte çalışan 10 modüle kadar olabilir.

Aşama 4. Botun teste tabi tutulması

Kurumsal düzeyde bir web kazıma hizmeti sağlayıcısı olarak, güvenilirliğe ve veri kalitesine en yüksek önceliği veriyoruz. Bunları sağlamak için, gerçek taramalar başlamadan önce, tarayıcı botunu hedef sitenin en yoğun olduğu zamanlarda ve dışında farklı koşullar altında test etmek önemlidir. Bu test için, canlı siteden rastgele sayıda sayfa almaya çalışıyoruz. Sonucu ölçtükten sonra, kararlılığını ve çalışma ölçeğini iyileştirmek için tarayıcıda daha fazla değişiklik yapılacaktır. Her şey beklendiği gibi çalışırsa, bot üretime geçebilir.

Aşama 5. Veri noktalarının çıkarılması ve veri işleme

Tarayıcı botlarımız, çoğu insanın aşina olduğu arama motoru tarayıcılarından farklı çalışır. Google bot gibi arama motoru botları web sayfalarını basitçe tarayıp bazı meta verilerle dizinlerine eklerken, botlarımız sayfaların tam html içeriğini geçici bir depolama alanına getirir ve burada çıkarma ve buna bağlı olarak çeşitli diğer işlemlerden geçer. müşteri gereksinimleri.

Bu aşamaya Çıkarma diyoruz ve bu, gerekli veri noktalarının önceden indirilmiş web sayfalarından çıkarıldığı yerdir. Ayıklandıktan sonra, veriler mükerrer girişler için otomatik olarak taranır ve tekilleştirilir. Sıradaki bir sonraki süreç, tüketim kolaylığı için verilerde belirli değişikliklerin yapıldığı normalleştirmedir. Örneğin, çıkarılan fiyat verileri dolar cinsinden ise, müşteriye teslim edilmeden önce farklı bir para birimine çevrilebilir.

Bu, mühendislerimizin yeni bir web tarama botu yapısına nasıl yaklaştığını gösteren hızlı bir adımdı. Botların yüksek verimliliğinin aynı zamanda sunucu ortamına ve yıllar içinde elde ettiğimiz optimizasyon düzeyine de bağlı olduğunu unutmayın. İki botun birbirine benzemediği, günlük olarak milyonlarca veri kaydını çıkarmak için istikrarlı bir teknoloji yığını ve altyapısı gereklidir.