Web Yakalama ve Dönüştürme Araçları

Kazınmış verileri hassaslaştırma

Diğer makalelerin çoğu verilerin nasıl çıkarılacağıyla ilgili olmakla birlikte, bu makale çıkarılan verilerin nasıl rafine edilebildiğini açıklamakta, böylece sadece istenen bilgiler kalmaktadır. Bunu özel yapmak için Criteria Aşağıdaki örneklerin hepsinde, veriler bir HTML tablosundan çıkarılırken yöntemler kullanılır, bu veriler, her bir veri içeriği div, yayılma, görüntü vb. kaynağı aynı uzunlukta olduğu sürece çeşitli kaynaklardan elde edilebilir.

Örnek tablo: kitap listesi

Aşağıda bu örnekte kazınan tablo verileri bu tabloda dört sütundan oluşmaktadır başlık, yazar, kitap yaşı ve durum.

başlık yazar kitap yaşı durum
Bahçe nasıl John 5 Yayınlanan
Bir kamera nasıl kullanılır? Sarah 0 Eksik
Bir kamera nasıl kullanılır? Sarah 0 Eksik
Astronomi kolaylaştı Dominic 1 İnceleme altında
Demir nasıl Paul 1 İnceleme altında
Nasıl çizilir mikrofon 3 Yayınlanan
PC nasıl kullanılır? Rachel 4 Yayınlanan
var titles = Page.getTagValues({"position":1,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}});
var authors = Page.getTagValues({"position":2,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}});
var ages = Page.getTagValues({"position":3,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}});
var statuses = Page.getTagValues({"position":4,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}});

Çoğu zaman, kazınan verilerin, yalnızca gereksinim duydukları bilgilere sahip olması için rafine edilmesi gerekir. İşte burası Criteria fonksiyonlar kullanılır. Örneğin, yalnızca yayınlanmış kitaplara ihtiyaç duyulursa, yukarıdaki durum sütununu yayınlanmış olarak kısıtlamanız ve ardından bu değişiklikleri aşağıda gösterildiği gibi diğer sütun verilerine uygulamanız gerekir.

Criteria.create();
statuses = Criteria.equals(statuses, "Published");
titles = Criteria.apply(titles);
authors = Criteria.apply(authors);
ages = Criteria.apply(ages);

Kullanırken Criteria Verileri azaltma yöntemleri, tüm değişikliklerin bir seferde bir seferde tek bir sütuna uygulanması gerekir. apply yöntem, ilgili kayıtların kaldırılması gereken diğer sütunlarda kullanılır. Tamamlandığında Criteria.create() Başka sütunlar için kriterler belirlenmeden önce metodun çağrılması gerekir. Bu nedenle, telefonla arama yapmanın en iyi yoludur. Criteria.create() diğer kriter yöntemlerinden önce.

Örnekte, statuses sütunu sadece içermekle sınırlandırılmıştır Yayınlanan, ardından Criteria.apply yöntem, diğer üç sütundaki karşılık gelen kayıtları da tüm sütunları tutarlı tutmak için de kaldırılmıştır. Uygulama yönteminin yalnızca farklı sütunların aynı sayıda kayıt içermesi durumunda yararlı olduğunu unutmayın.

Kriterler, verileri çeşitli şekillerde sınırlandırmak için bir araya getirilebilir. Aşağıdaki örnekte, kitap yaşı sütunu, kitaplığı kullanarak bir yaşından büyük ancak beş yaşından küçük kitaplarla sınırlandırılmıştır. Criteria.lessThan() ve Criteria.greaterThan() yöntemleri.

Criteria.create();
ages = Criteria.greaterThan(ages, 1);
ages = Criteria.lessThan(ages, 5);
titles = Criteria.apply(titles);
authors = Criteria.apply(authors);
statuses = Criteria.apply(statuses);

Bazen kaldırılması gereken yinelenen veriler olabilir, bu bilgileri kaldırmak için Criteria.unique yöntemi.

Criteria.create();
titles = Criteria.unique(titles);
authors = Criteria.apply(authors);
ages = Criteria.apply(ages);
statuses = Criteria.apply(statuses);

Şimdi başlık sütununa dayanan yinelenen satırlar kaldırılacak. Bir sonraki yöntem Criteria.remove yöntem. Bu, sütun değerleri dizi parametresinde bulunursa, sütunları öğeleri kaldırır.

var authorsToRemove = ["Mike","Rachel"];
Criteria.create();
titles = Criteria.remove(authors, authorsToRemove);
authors = Criteria.apply(titles);
ages = Criteria.apply(ages);
statuses = Criteria.apply(statuses);

Burada, yazarlar sütununda Mike ve Rachel'e eşit olan tüm kayıtlar, application yöntemini kaldırır, ardından karşılık gelen kayıtları diğer sütunlardan kaldırır.