crawler4j 예제

진실은 인터넷의 모든 페이지에 걸쳐 하나의 웹 크롤러를 개발하고 유지 관리하는 것은 … 불가능하지는 않더라도 어려운, 현재 10 억 개 이상의 웹 사이트가 온라인것을 고려. 이 기사를 읽는 경우 웹 크롤러를 만드는 가이드가 아니라 웹 스크레이퍼를 만들 수 있습니다. 그렇다면 이 기사를 `기본 웹 크롤러`라고 부르는 이유는 무엇입니까? 잘… 그것은 인기가 있기 때문에 … 정말! 크롤러와 스크레이퍼의 차이점을 아는 사람은 거의 없으므로 오프라인 데이터 스크래핑에서도 모든 것에 대해 « 크롤링 »이라는 단어를 사용하는 경향이 있습니다. 또한 웹 스크레이퍼를 빌드하려면 크롤링 에이전트도 필요합니다. 그리고 마지막으로,이 문서는 정보를 뿐만 아니라 실행 가능한 예제를 제공 하고자 하기 때문에. 이전 예제를 기반으로 동일한 컨트롤러에서 여러 크롤러를 실행하는 방법을 살펴보겠습니다.

링크 추출의 깊이를 설정 하기 위해 이전 예제를 수정 합니다. 이 예제와 이전 예제 간의 유일한 진정한 차이점은 재귀 getPageLinks() 메서드에는 if… else 문. 3. 사용자 지정 크롤러 클래스는 Crawler4j 프레임워크에서 제공하는 WebCrawler 클래스를 확장하여 추가해야 합니다. 아래 코드 조각에서 와 같이 크롤러에 대한 예상 동작을 제공하려면 두 가지 방법인 « 방문 » 및 « 방문 » 메서드를 재정의해야 합니다. Crawler4j는 분산 작업을 지원하지 않지만 여러 스레드를 추가하여 확장할 수 있습니다. 전체 코드 예제는 GitHub에서 사용할 수 있습니다. Crawler4j는 « 예의 지연 »이라는 변수를 사용하여 예의를 달성합니다. 이 기본값은 200밀리초로 설정됩니다. 사용자는 자신의 요구 사항에 따라 이 것을 조정할 수 있습니다. Crawler4j는 요청 간에 « 예의 지연 »에 지정된 최소한 금액을 기다립니다.

이제 몇 가지 기본 예제를 살펴보았으므로 크롤링 중에 몇 가지 기본 통계를 수집하기 위해 HtmlCrawler를 확장해 보겠습니다. 기본적으로 크롤러4j는 이진 데이터를 크롤링하지 않습니다. 다음 예제에서는 해당 기능을 켜고 Baeldung의 모든 JPEG를 크롤링합니다. 인트로에서 약속한 대로 이론에서 벗어나 실행 가능한 예로 전환할 시간입니다. mkyong.com Java 8과 관련된 기사의 모든 URL을 얻으려고 하는 시나리오를 상상해 보겠습니다. 우리의 목표는 가능한 한 짧은 시간에 해당 정보를 검색하여 전체 웹 사이트를 통해 크롤링하지 않도록하는 것입니다. 게다가,이 방법은 서버의 자원을 낭비할뿐만 아니라 우리의 시간도 낭비합니다. 크롤러4j는 기본적으로 분산 작업을 지원하지 않습니다.

그러나 분산 작업을 지원하는 crawler4j를 기반으로 작성된 확장 프로젝트가 있습니다. 이 문서에서는 크롤러4j를 사용하여 자체 웹 크롤러를 만들었습니다. HTML 과 이미지를 크롤링하는 두 가지 간단한 예제로 시작했습니다. 그런 다음 이러한 예제를 기반으로 통계를 수집하고 여러 크롤러를 동시에 실행하는 방법을 확인했습니다. Crawler4j는 해당 호스트의 robots.txt 파일에 대해 가져온 각 URL을 평가합니다. 기본적으로 크롤링 깊이에는 제한이 없습니다. 그러나 크롤링의 깊이를 제한할 수 있습니다. 예를 들어 시드 페이지 « A »가 있고, « B »로 연결되는 « C »로 연결되는 « D »로 연결된다고 가정합니다. 따라서 HTML 구문 분석의 경우 jsoup을 사용합니다. 아래 예제는 jsoup 버전 1.10.2를 사용하여 개발되었습니다. 크롤러4j의 성능 및 효율성은 크롤러 스레드의 수를 증가시키고 정중지연을 감소시킴으로써 증가할 수 있으며, « A »는 시드 페이지이기 때문에, 깊이는 0을 갖게 된다.

« B »는 1의 깊이를 가지며 등등입니다. 크롤러4j크크러크하는 페이지의 깊이에 대한 제한을 설정할 수 있습니다.

Les commentaires sont fermés.