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.
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(); authors = Criteria.remove(authors, authorsToRemove); titles = 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.