웹 캡처 및 변환 도구

스크랩 된 데이터 정제

다른 많은 기사는 데이터를 추출하는 방법을 다루지 만이 기사에서는 추출 된 데이터를 세분화하여 원하는 정보 만 유지하는 방법을 설명합니다. 이것을 특별하게하기 위해 Criteria 메소드는 다음의 모든 예제에서 HTML 테이블에서 데이터가 추출되는 동안 사용됩니다.이 데이터는 각 데이터 컨텐츠 소스, 범위, 스팬, 이미지 등의 길이가 동일한 한 다양한 소스에서 추출 될 수 있습니다.

예 테이블 : 책 목록

아래는이 예제에서 스크랩되는 테이블 데이터이며, 4 개의 열로 구성됩니다. 제목, 저자, 책 나이지위.

제목 저자 책 나이 지위
정원하는 방법 요한 복음 5 게재
카메라 사용법 사라 0 불완전한
카메라 사용법 사라 0 불완전한
천문학은 쉽게 만들어 도미니크 1 검토 중
다림질하는 방법 1 검토 중
그리는 방법 마이크 3 게재
PC 사용법 레이첼 4 게재
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"}}});

스크랩 된 데이터는 종종 필요한 정보 만 갖도록 다듬어야합니다. 여기가 Criteria 기능이 사용됩니다. 예를 들어 출판 된 장부 만 필요한 경우 위의 상태 열을 게시하도록 제한 한 다음 아래에 표시된대로 해당 변경 사항을 다른 열 데이터에 적용해야합니다.

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

사용시 Criteria 데이터를 줄이려면 모든 변경 사항을 한 번에 하나의 열에 적용해야합니다. apply 메소드는 해당 레코드를 제거해야하는 다른 모든 열에 사용됩니다. 완료되면 Criteria.create() 다른 열에 대한 기준을 설정하기 전에 메소드를 호출해야합니다. 이러한 이유 때문에 전화를하는 것이 가장 좋습니다. Criteria.create() 다른 기준 방법 전에.

이 예에서 상태 열은 다음 만 포함하도록 제한되었습니다. 게재을 사용하여 Criteria.apply 이 방법을 사용하면 다른 세 열의 해당 레코드도 제거되어 모든 열의 일관성을 유지합니다. apply 메소드는 다른 열에 동일한 수의 레코드가있는 경우에만 유용합니다.

크리 티에리 아는 여러 방법으로 데이터를 제한하기 위해 함께 결합 될 수도 있습니다. 아래 예는 책 연령 열을 1 세 이상 5 세 미만의 책으로 제한하여 Criteria.lessThan()Criteria.greaterThan() 방법.

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

때때로이 정보를 제거하기 위해 제거해야 할 중복 데이터가있을 수 있습니다. Criteria.unique 방법.

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

이제 제목 열을 기반으로하는 모든 중복 행이 제거됩니다. 다음 방법은 Criteria.remove 방법. 열 값이 배열 매개 변수에 있으면 열에서 항목을 제거합니다.

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

여기서 authors 열에서 Mike 및 Rachel과 동일한 모든 레코드는 apply 메소드가 제거 된 다음 다른 열에서 해당 레코드를 제거합니다.