Podczas gdy wiele innych artykułów dotyczy sposobu wyodrębniania danych, w tym artykule wyjaśniono, w jaki sposób można wyodrębnić wyodrębnione dane, aby pozostały tylko pożądane informacje. Aby to zrobić specjalną Criteria
stosowane są metody, podczas gdy we wszystkich poniższych przykładach dane są wyodrębniane z tabeli HTML, dane te można wyodrębniać z różnych źródeł, o ile każde źródło div danych, zakresów, obrazów itp. ma tę samą długość.
Poniżej znajdują się dane tabeli, które zostały zeskrobane w tym przykładzie, ta tabela składa się z czterech kolumn tytuł, autor, wiek książki i status.
tytuł | autor | wiek książki | status |
---|---|---|---|
Jak uprawiać ogródek | John | 5 | Opublikowany |
Jak korzystać z aparatu | Sara | 0 | Niekompletny |
Jak korzystać z aparatu | Sara | 0 | Niekompletny |
Astronomia łatwa | Dominic | 1 | W ramach przeglądu |
Jak prasować | Paweł | 1 | W ramach przeglądu |
Jak rysować | Mike | 3 | Opublikowany |
Jak korzystać z komputera | Rachel | 4 | Opublikowany |
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"}}});
Często zeskrobane dane wymagają udoskonalenia, aby zawierały tylko te informacje, których potrzebują. To gdzie Criteria
funkcje są używane. Na przykład, jeśli wymagane są tylko opublikowane książki, musisz ograniczyć kolumnę statusów powyżej do opublikowanych, a następnie zastosować te zmiany do innych danych kolumny, jak pokazano poniżej.
Criteria.create(); statuses = Criteria.equals(statuses, "Published"); titles = Criteria.apply(titles); authors = Criteria.apply(authors); ages = Criteria.apply(ages);
Podczas używania Criteria
metody zmniejszania danych wszystkie zmiany muszą być zastosowane w jednej kolumnie na raz, przed apply
Metoda jest używana we wszystkich innych kolumnach, które muszą mieć usunięte odpowiednie rekordy. Po zakończeniu Criteria.create()
Metoda musi zostać wywołana przed ustaleniem kryteriów dla innych kolumn. Z tego powodu najlepiej jest zadzwonić pod numer Criteria.create()
przed innymi metodami kryteriów.
W tym przykładzie kolumna statusów została ograniczona do uwzględnienia Opublikowany, a następnie za pomocą Criteria.apply
Metoda usunięto również odpowiednie rekordy z trzech pozostałych kolumn, aby zachować spójność wszystkich kolumn. Pamiętaj, że metoda zastosuj jest przydatna tylko wtedy, gdy różne kolumny zawierają tę samą liczbę rekordów.
Kryteria można również łączyć razem, aby ograniczyć dane na wiele sposobów. Poniższy przykład ogranicza kolumnę wieku książek do książek starszych niż jeden, ale mniejszych niż pięć lat, używając Criteria.lessThan()
i Criteria.greaterThan()
Metody.
Criteria.create(); ages = Criteria.greaterThan(ages, 1); ages = Criteria.lessThan(ages, 5); titles = Criteria.apply(titles); authors = Criteria.apply(authors); statuses = Criteria.apply(statuses);
Czasami zduplikowane dane muszą zostać usunięte, aby usunąć te informacje, możesz użyć Criteria.unique
Metoda.
Criteria.create(); titles = Criteria.unique(titles); authors = Criteria.apply(authors); ages = Criteria.apply(ages); statuses = Criteria.apply(statuses);
Teraz wszelkie zduplikowane wiersze na podstawie kolumny tytułu zostaną usunięte. Następną metodą jest Criteria.remove
metoda. Spowoduje to usunięcie elementów z kolumny, jeśli te wartości kolumny zostaną znalezione w parametrze array.
var authorsToRemove = ["Mike","Rachel"]; Criteria.create(); authors = Criteria.remove(authors, authorsToRemove); titles = Criteria.apply(titles); ages = Criteria.apply(ages); statuses = Criteria.apply(statuses);
Tutaj wszystkie rekordy, które są równe Mike'owi i Rachel w kolumnie autorów, są usuwane, zastosuj metodę, a następnie usuwa odpowiednie rekordy z innych kolumn.