Ana içeriğe atla

Sonuç Filtreleri

A-Parser'da sonuçları belirli kurallar dizisine göre filtreleme ve sonuçlara yalnızca gerekli verileri kaydetme imkanı mevcuttur.

Filtreleme kullanımı

Temel uygulama seçenekleri:

  • Yalnızca belirli bir dize girişini (örneğin CMS belirtisi) içeren bağlantıları kaydetme
  • Alan adı veritabanını belirli parametrelere göre filtreleme (örneğin Yandex IKS 300'den büyük, dil RU)
  • Sunucudan gelen yanıtı kontrol etme (örneğin 200 OK veya belirli başlıkların içeriği)
  • Snippet içinde orijinal sorgunun bulunup bulunmadığını kontrol etme
  • Sonuçların belirli koşullara göre sınırlandırılması gereken diğer tüm uygulama seçenekleri

Filtreler, Görev Düzenleyici'de ilgili veri kazıyıcının karşısındaki araç simgesine tıklanarak eklenebilir:

Görev Düzenleyici'de Filtre seçeneği

Filtreleme türleri

Hem tekil sonuçlar hem de sonuç dizileri filtrelenebilir. Birkaç filtre türü mevcuttur:

  • Dizelerin eşitliği veya eşitsizliğine göre
  • Alt dizenin varlığına veya yokluğuna göre
  • Düzenli ifadeye uygunluk veya uygunsuzluğa göre
  • Sayısal değerler büyüktür, küçüktür ve eşittir şeklinde filtrelenebilir
ipucu

Ayrıca bakınız: Sonuçların gösterimi

Çalışma özellikleri

  • Sonuç dizileri filtrelenirken, dizide yalnızca filtreye uyan sonuçlar kalır
  • Basit sonuçlar filtrelenirken, eğer sonuç filtreye uymazsa, birden fazla veri kazıyıcı kullanıldığı durumlar dahil olmak üzere bu sorgu için sonuç tamamen atlanır
  • Bir görevde iki veya daha fazla filtre kullanıldığında aralarında mantıksal VE uygulanır, başka bir deyişle sonuç ancak tüm filtrelerin koşullarına aynı anda uyduğunda kaydedilir
  • Değer belirtme alanında (dize, düzenli ifade veya sayısal değer) karşılaştırma yaparken Template Toolkit şablonlayıcısı kullanılabilir, Genel sonuç formatı için geçerli olan tüm değişkenler mevcuttur

Örnekler

Sayfadaki metne göre filtreleme

Sayfada belirli bir metnin bulunup bulunmadığına göre site veritabanını kontrol etme
Sorgu olarak bağlantıların bulunduğu bir dosya kullanıyoruz, sonuç olarak aranan metnin geçtiği bağlantıların bulunduğu filtrelenmiş bir dosya alıyoruz.

İstenen sayfayı indirmek için Net::HTTPNet::HTTP veri kazıyıcısını kullanıyoruz, sonuç olarak sorguyu (kontrol ettiğimiz bağlantıyı) kaydediyoruz. $data sonucunu - indirilen sayfanın içeriği - filtreliyoruz, filtre türü olarak Contain string seçeneğini belirliyor ve dizenin kendisini giriyoruz:

Sayfadaki metne göre filtreleme örneği

Resimleri boyuta göre filtreleme

Resimleri çözünürlüğe göre filtreleme

SE::Google::ImagesSE::Google::Images üzerinden veri çekme işlemi yaparken görsel yüksekliğini ve genişliğini filtreliyoruz, yalnızca **500x500** pikselden büyük olan görselleri kaydediyoruz:Resimleri boyuta göre filtreleme örneği

Birkaç özelliğe göre filtreleme

Bağlantıları birkaç farklı dizeden herhangi birinin varlığına göre filtreleme
Bağlantıları birkaç farklı dizeye göre filtrelemek için düzenli ifadeleri belirtme imkanından yararlanacağız, bunun için birkaç özelliği bir ayırıcı ile yazıyoruz:

showthread\.php
/forum/
viewtopic\.php\?t=
not

Düzenli ifadelerin bir dizi karakterin kaçış karakteri ile kullanılmasını gerektirdiğini unutmayın

Birkaç kritere göre filtreleme örneği

Filtrede sorgu kullanımı

Orijinal sorguyu içeren Google snippet'lerini kaydetme
Karşılaştırma dizesi olarak sorguyu içeren değişken olan [% query %] ifadesini açıkça belirtiyoruz, büyük/küçük harfe duyarlı alt dize araması için Sensitive seçeneğini seçiyoruz:

Filtrede sorgu kullanımı örneği