Java 프로그래밍 언어
Java는 크로스 플랫폼 애플리케이션 소프트웨어를 작성할 수 있는 객체 지향 프로그래밍 언어로 1995년 5월 Sun Microsystems에서 출시되었습니다. 프로그래밍의 일반적인 용어입니다. 언어 및 Java 플랫폼(예: JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)).
웹 크롤러(웹 스파이더, 웹 로봇이라고도 알려져 있으며 FOAF 커뮤니티에서는 웹 체이서라고도 함)는 특정 규칙을 따르는 웹 크롤러 유형입니다. World Wide Web에서 자동으로 정보를 크롤링하는 프로그램 또는 스크립트. 덜 일반적으로 사용되는 다른 이름으로는 개미, 자동 인덱서, 에뮬레이터 또는 웜이 있습니다.
오늘은 필요한 친구들이 빠르게 모아볼 수 있는 자바 오픈소스 웹 크롤러 19가지를 소개하겠습니다.
1. Heritrix
Heritrix는 java에서 개발한 오픈소스 웹 크롤러로, 사용자는 이를 사용하여 인터넷에서 원하는 리소스를 크롤링할 수 있습니다. . 가장 큰 특징은 확장성이 뛰어나 사용자가 자신의 크롤링 논리를 구현하는 것이 편리하다는 것입니다.
Heritrix는 사이트 콘텐츠의 완전하고 정확하며 깊은 사본을 얻기 위한 "아카이브 크롤러"입니다. 여기에는 이미지 및 기타 텍스트가 아닌 콘텐츠 캡처가 포함됩니다. 관련 콘텐츠를 크롤링하고 저장합니다. 콘텐츠는 거부되지 않으며 페이지의 콘텐츠는 수정되지 않습니다. 동일한 URL을 다시 크롤링해도 이전 URL이 대체되지는 않습니다. 크롤러는 주로 웹 사용자 인터페이스를 통해 시작, 모니터링 및 조정되므로 가져올 URL을 유연하게 정의할 수 있습니다.
Heritrix는 멀티 스레드 방식으로 크롤링하는 크롤러입니다. 메인 스레드는 Teo 스레드(처리 스레드)에 작업을 할당하고, 각 Teo 스레드는 한 번에 하나의 URL을 처리합니다. Teo 스레드는 각 URL에 대해 URL 프로세서 체인을 한 번 실행합니다. URL 프로세서 체인에는 다음과 같은 5가지 처리 단계가 포함됩니다.
(1) 프리페치 체인: 지연 및 재처리, 후속 작업 거부 등 일부 준비 작업을 주로 수행합니다.
(2) 추출 체인: 주로 웹페이지 다운로드, DNS 변환 수행, 요청 및 응답 양식 작성.
(3) 추출 체인: 추출이 완료되면 관심 있는 HTML 및 JavaScript를 추출합니다. 일반적으로 크롤링할 새 URL이 있습니다.
(4) 링크 쓰기: 크롤링 결과를 저장하고 이 단계에서 직접 전체 텍스트 색인을 수행할 수 있습니다. Heritrix는 다운로드 결과를 ARC 형식으로 저장하는 ARCWriterProcessor 구현을 제공합니다.
(5) 제출 체인: 이 URL과 관련된 작업의 최종 처리를 수행합니다. 새로 추출된 URL이 크롤링 범위 내에 있는지 확인한 후 해당 URL을 Frontier에 제출하세요. DNS 캐시 정보도 업데이트됩니다.
Heritrix 시스템 프레임워크 다이어그램
Heritrix의 URL 처리 과정
2. WebSPHINX
WebSPHINX는 Java 클래스 패키지 및 웹 크롤러를 위한 대화형 개발 환경입니다. 웹 크롤러(로봇 또는 스파이더라고도 함)는 웹 페이지를 자동으로 탐색하고 처리하는 프로그램입니다. WebSPHINX는 크롤러 작업 플랫폼과 WebSPHINX 클래스 패키지의 두 부분으로 구성됩니다.
WebSPHINX는 Java 클래스 패키지 및 웹 크롤러를 위한 대화형 개발 환경입니다. 웹 크롤러(로봇 또는 스파이더라고도 함)는 웹 페이지를 자동으로 탐색하고 처리하는 프로그램입니다. WebSPHINX는 크롤러 작업 플랫폼과 WebSPHINX 클래스 패키지의 두 부분으로 구성됩니다.
WebSPHINX – 목적
1. 페이지 모음을 시각적으로 표시합니다.
2. 오프라인 탐색을 위해 페이지를 로컬 디스크에 다운로드합니다.
3. 탐색 또는 인쇄를 위해 단일 페이지로 연결
4. 특정 규칙에 따라 페이지에서 텍스트 문자열을 추출합니다
5. Java 또는 Javascript를 사용하여 사용자 정의 크롤러를 개발합니다
자세한 소개는 >>>
3. WebLech
WebLech는 강력한 웹사이트 다운로드 및 미러링 도구입니다. 이는 기능 요구 사항을 기반으로 웹 사이트 다운로드를 지원하고 표준 웹 브라우저의 동작을 최대한 유사하게 모방합니다. WebLech는 기능적인 콘솔을 가지고 있으며 멀티스레드 작업을 사용합니다.
WebLech는 웹 사이트를 다운로드하고 미러링하기 위한 강력한 무료 오픈 소스 도구입니다. 이는 기능 요구 사항을 기반으로 웹 사이트 다운로드를 지원하고 표준 웹 브라우저의 동작을 최대한 유사하게 모방합니다. WebLech는 기능적인 콘솔을 가지고 있으며 멀티스레드 작업을 사용합니다.
이 크롤러는 초보자이고 크롤러를 작성하려는 경우 입문용 참고 자료로 사용할 수 있을 만큼 간단합니다. 그래서 저는 이 크롤러로 연구를 시작하기로 결정했습니다. 수요가 적은 애플리케이션만 수행하는 경우에도 시도해 볼 수 있습니다. 강력한 도구를 찾고 싶다면 WebLech에 시간을 낭비하지 마십시오.
프로젝트 홈페이지: http://weblech.sourceforge.net/
특징:
1) 오픈 소스, 무료
2) 코드 순수 Java로 작성되어 Java를 지원하는 모든 플랫폼에서 사용 가능
3) 웹 페이지의 멀티스레드 다운로드 지원
4) 웹 페이지 간 링크 정보 유지 가능
5 ) 고도로 구성 가능: URL 필터를 사용하여 깊이 우선 또는 너비 우선 크롤링 웹 페이지를 사용자 정의할 수 있으므로 필요에 따라 단일 웹 서버, 단일 디렉토리 또는 전체 WWW 네트워크를 크롤링할 수 있습니다. URL의 우선 순위를 설정하여 우리 감각이 먼저 크롤링되도록 할 수 있습니다. 흥미롭거나 중요한 웹 페이지는 중단점에서 프로그램 상태를 기록하고, 다시 시작할 때 마지막 시간부터 크롤링을 계속할 수 있습니다.
4. Arale
Arale은 주로 개인용으로 설계되었으며 다른 크롤러처럼 페이지 색인 생성에 중점을 두지 않습니다. Arale은 전체 웹 사이트 또는 웹 사이트에서 특정 리소스를 다운로드할 수 있습니다. Arale은 동적 페이지를 정적 페이지로 매핑할 수도 있습니다.
5. JSpider
JSpider: 완전히 구성 및 사용자 정의가 가능한 Web Spider 엔진으로 웹 사이트 오류(내부 서버 오류 등), 내부 및 외부 링크를 확인할 수 있습니다. 웹 사이트 웹 사이트의 구조를 확인 및 분석하고(사이트 맵 생성 가능), 전체 웹 사이트를 다운로드할 수 있으며, JSpider 플러그인을 작성하여 필요한 기능을 확장할 수도 있습니다.
Spider는 Java로 구현된 WebSpider입니다. JSpider의 실행 형식은 다음과 같습니다.
jspider [URL] [ConfigName]
URL에 프로토콜 이름을 추가해야 합니다. , 예: http://, 그렇지 않으면 오류가 보고됩니다. ConfigName을 생략하면 기본 구성이 사용됩니다.
JSpider의 동작은 구성 파일에 의해 구체적으로 구성됩니다. 예를 들어 어떤 플러그인이 사용되는지, 결과가 저장되는 방법 등은 모두 conf[ConfigName] 디렉터리에 설정됩니다. JSpider의 기본 구성 유형은 매우 적고 거의 사용되지 않습니다. 그러나 JSpider는 확장이 매우 쉽고 이를 사용하여 강력한 웹 크롤링 및 데이터 분석 도구를 개발할 수 있습니다. 이를 위해서는 JSpider의 원리를 깊이 있게 이해한 다음 필요에 따라 플러그인을 개발하고 구성 파일을 작성해야 합니다.
Spider는 다음과 같습니다.
구성 및 사용자 정의가 용이한 웹 크롤러
LGPL 오픈 소스 라이센스에 따라 개발
100% 순수 Java 구현
이를 사용하여 다음을 수행할 수 있습니다.
사이트에 오류가 있는지 확인하세요(내부 서버 오류 등)
나가는 링크 또는 내부 링크 확인
사이트 구조 분석( 사이트맵 만들기, …)
리노베이션 웹사이트 다운로드
JSpider 플러그인을 작성하여 모든 기능을 구현하세요.
프로젝트 홈페이지: http://j-spider. sourceforge.net/
6. 스핀들
스핀들은 Lucene 툴킷을 기반으로 구축된 웹 인덱싱/검색 도구입니다. 여기에는 인덱스 생성을 위한 HTTP 스파이더와 이러한 검색 클래스를 검색하기 위한 HTTP 스파이더가 포함되어 있습니다. 인덱스를 위해. 스핀들 프로젝트는 JSP 기반 사이트가 Java 클래스를 개발하지 않고도 검색 기능을 추가할 수 있도록 하는 JSP 태그 라이브러리 세트를 제공합니다.
7. Arachnid
Arachnid는 HTML 콘텐츠가 포함된 입력 스트림을 분석할 수 있는 간단한 HTML 파서가 포함된 Java 기반 웹 스파이더 프레임워크입니다. 간단한 웹 스파이더를 개발하고 웹 사이트의 각 페이지가 구문 분석된 후 호출할 코드 몇 줄을 추가합니다. Arachnid 다운로드 패키지에는 프레임워크 사용 방법을 보여주는 두 개의 스파이더 애플리케이션 예제가 포함되어 있습니다.
프로젝트 홈 페이지: http://arachnid.sourceforge.net/
8. LARM
LARM은 Jakarta Lucene 검색 사용자에게 순수 Java를 제공할 수 있습니다. 엔진 프레임워크 솔루션을 검색하세요. 여기에는 파일 색인화 방법, 데이터베이스 테이블 및 웹 사이트 색인화용 크롤러가 포함되어 있습니다.
프로젝트 홈페이지: http://larm.sourceforge.net/
9. JoBo
JoBo는 전체 웹사이트를 다운로드할 수 있는 간단한 도구입니다. 본질적으로 웹 스파이더입니다. 다른 다운로드 도구와 비교할 때 이 도구의 주요 장점은 자동으로 양식을 채우고(예: 자동 로그인) 쿠키를 사용하여 세션을 처리하는 기능입니다. JoBo에는 또한 유연한 다운로드 규칙(예: 웹 페이지 URL, 크기, MIME 유형 등으로 다운로드 제한)이 있습니다.
10. snoics-reptile
1. snoics-reptile이란?
순수 Java로 개발되었으며 웹사이트 이미지를 캡처하는 데 사용되는 도구입니다. 구성 파일에 제공된 URL 항목은 웹 페이지와 사진, 플래시, mp3, zip, rar, exe 및 기타 파일. 전체 웹사이트를 하드 드라이브에 완전히 다운로드할 수 있으며, 원래 웹사이트 구조는 정확하고 변경되지 않고 유지될 수 있습니다. 완전한 웹사이트 미러링을 달성하려면 캡처된 웹사이트를 웹 서버(예: Apache)에 넣기만 하면 됩니다.
2. 이제 다른 유사한 소프트웨어가 있는데 왜 snoics-reptile을 개발해야 합니까?
일부 파일은 크롤링 과정에서 잘못된 파일이 있는 경우가 많기 때문에 JavaScript로 제어되는 URL을 올바르게 구문 분석하는 방법이며, snoics-reptile은 외부 인터페이스와 구성 파일을 제공합니다. 특수 URL의 경우 외부에서 제공되는 인터페이스를 자유롭게 확장하고 구성 파일을 주입할 수 있으며 기본적으로 모든 웹 페이지를 올바르게 구문 분석하고 크롤링할 수 있습니다.
프로젝트 홈페이지: http://www.blogjava.net/snoics
11. Web-Harvest
Web-Harvest는 Java 오픈 소스 웹 데이터 추출 도구입니다. . 지정된 웹페이지를 수집하고 해당 페이지에서 유용한 데이터를 추출할 수 있습니다. Web-Harvest는 주로 XSLT, XQuery, 정규식 등과 같은 기술을 사용하여 text/xml 작업을 구현합니다.
Web-Harvest는 Java로 작성된 오픈 소스 웹 데이터 추출 도구입니다. 원하는 페이지에서 유용한 데이터를 추출하는 방법을 제공합니다. 이 목표를 달성하려면 XSLT, XQuery 및 정규식과 같은 관련 기술을 사용하여 text/xml을 조작해야 할 수도 있습니다. Web-Harvest는 주로 HMLT/XML 기반 페이지 콘텐츠에 중점을 두고 있으며 여전히 대다수를 차지하고 있습니다. 반면에 자체 Java 메소드를 작성하여 추출 기능을 쉽게 확장할 수 있습니다.
Web-Harvest의 주요 목적은 기존 데이터 추출 기술의 활용도를 높이는 것입니다. 그 목표는 새로운 방법을 만드는 것이 아니라 기존 방법을 사용하고 결합하는 더 나은 방법을 제공하는 것입니다. 데이터를 처리하고 흐름을 제어하는 프로세서 세트를 제공합니다. 각 프로세서는 매개변수를 갖고 실행 후 결과를 반환하는 함수로 간주됩니다. 또한 처리 내용을 파이프라인으로 결합하여 체인 형태로 실행할 수 있습니다. 또한, 데이터 조작 및 재사용을 용이하게 하기 위해 Web-Harvest는 선언된 변수를 저장할 수 있는 가변 상위 및 하위 레이어도 제공합니다.
Web-harvest를 시작하려면 jar 패키지를 직접 더블클릭하여 실행하면 됩니다. 그러나 이 방법으로는 web-harvest Java 가상 머신의 크기를 지정할 수 없습니다. 두 번째 방법은 cmd 아래의 web-harvest 디렉터리로 이동하여 "java -jar -Xms400m webharvest_all_2.jar" 명령을 입력하여 시작하고 Java 가상 머신 크기를 400M로 설정하는 것입니다.
프로젝트 홈페이지: http://web-harvest.sourceforge.net
12. ItSucks
ItSucks는 Java 웹 크롤러 오픈 소스 프로젝트입니다. 유연하게 사용자 정의할 수 있으며 다운로드 템플릿과 정규식을 통해 다운로드 규칙 정의를 지원합니다. 콘솔과 Swing GUI 운영 인터페이스를 제공합니다.
기능:
멀티스레딩
정규식
다운로드 작업 저장/로드
온라인 도움말
HTTP/HTTPS 지원
HTTP 프록시 지원
HTTP 인증
쿠키 지원
구성 가능한 사용자 에이전트
연결 제한
HTTP 응답 코드 동작 구성
대역폭 제한
Gzip 압축
프로젝트 홈페이지: http://itsucks.sourceforge.net/
13. 스마트하고 간단한 웹 크롤러
Smart and Simple Web Crawler는 웹 크롤러 프레임워크입니다. 통합 Lucene 지원. 크롤러는 단일 링크 또는 링크 배열에서 시작할 수 있으며 최대 반복 및 최대 깊이라는 두 가지 탐색 모드를 제공합니다. 크롤링된 링크를 제한하도록 필터를 설정할 수 있습니다. ServerFilter, BeginningPathFilter 및 RegularExpressionFilter는 기본적으로 AND, OR 및 NOT과 결합될 수 있습니다. 구문 분석 프로세스 또는 페이지 로딩 전후에 리스너를 추가할 수 있습니다.
14. Crawler4j
crawler4j는 Java로 구현된 오픈 소스 웹 크롤러입니다. 몇 분 만에 멀티스레드 웹 크롤러를 생성할 수 있는 간단하고 사용하기 쉬운 인터페이스를 제공합니다.
crawler4j의 사용은 크게 두 단계로 나뉩니다.
WebCrawler에서 상속받은 크롤러 클래스 구현
CrawlController를 호출하여 구현한 크롤러 클래스.
WebCrawler는 추상 클래스입니다. 이를 상속받는 경우 shouldVisit 및 Visit라는 두 가지 메소드를 구현해야 합니다. 그 중
shouldVisit은 현재 URL을 크롤링(방문)해야 하는지 결정하는 것입니다.
visit은 URL이 가리키는 페이지의 데이터를 크롤링하는 것이며, 해당 들어오는 매개변수는 다음과 같습니다. 웹페이지의 모든 데이터를 캡슐화한 객체 Page입니다.
또한 WebCrawler에는 재정의할 수 있는 다른 메서드가 있으며 해당 메서드의 명명 규칙은 Android의 명명 규칙과 유사합니다. 예를 들어, getMyLocalData 메소드는 WebCrawler에서 데이터를 반환할 수 있습니다. onBeforeExit 메소드는 WebCrawler가 종료되기 전에 호출되어 리소스 해제와 같은 일부 작업을 수행할 수 있습니다.
라이센스
저작권(c) 2010-2015 Yasser Ganjisaffar
Apache License 2.0에 따라 출시
오픈 소스 주소: https://github. com/ yasserg/crawler4j
15. Ex-Crawler
Ex-Crawler는 Java로 개발된 웹 크롤러로, 하나는 데몬 프로세스이고 다른 하나는 두 부분으로 나뉩니다. 유연하고 구성 가능한 웹 크롤러입니다. 데이터베이스를 사용하여 웹 페이지 정보를 저장합니다.
Ex-Crawler는 세 부분(Crawler Daemon, Gui 클라이언트 및 웹 검색 엔진)으로 나누어집니다. 이 세 부분의 조합은 유연하고 강력한 크롤러 및 검색 엔진이 됩니다. 웹 검색 엔진 부분은 PHP를 사용하여 개발되었으며 검색 엔진을 유지 관리하기 위한 콘텐츠 관리 시스템 CMS가 포함되어 있습니다.
프로젝트 홈페이지: http://ex-crawler.sourceforge.net/joomla/
16. 크롤러
크롤러는 간단한 웹 크롤러입니다. 지루하고 오류가 발생하기 쉬운 코드 작성을 방지하고 크롤링해야 하는 웹사이트 구조에만 집중할 수 있습니다. 게다가 사용하기도 매우 쉽습니다.
프로젝트 홈페이지: http://projetos.vidageek.net/crawler/crawler/
Seventeen, Encog
Encog는 첨단 신경망 및 로봇/크롤러 개발 회사입니다. 수업 도서관. Encog에서 제공하는 두 가지 기능을 별도로 사용하여 신경망이나 HTTP 로봇을 만들 수 있으며 Encog는 이 두 가지 고급 기능을 결합하여 사용할 수도 있습니다. Encog는 피드포워드 신경망, Hopfield 신경망 및 자체 구성 그래프 생성을 지원합니다.
Encog는 고급 HTTP 로봇/크롤러 프로그래밍 기능을 제공합니다. 다중 스레드 크롤러에 의해 생성된 콘텐츠를 메모리 또는 데이터베이스에 저장할 수 있도록 지원합니다. HTM 구문 분석과 고급 양식 및 쿠키 처리를 지원합니다.
Encog는 다양한 고급 알고리즘을 지원하는 것은 물론 클래스 정규화 및 데이터 처리를 지원하는 고급 기계 학습 프레임워크입니다. 지원 벡터 머신, 인공 신경망, 유전 프로그래밍, 베이지안 네트워크, 은닉 마르코프 모델, 유전 프로그래밍 및 유전 알고리즘과 같은 기계 학습 알고리즘이 지원됩니다. 대부분의 Encog 훈련 알고리즘은 멀티스레드이며 멀티코어 하드웨어로 잘 확장됩니다. Encog는 GPU를 사용하여 처리 시간을 더욱 단축할 수도 있습니다. 기계 학습 알고리즘을 모델링하고 훈련하는 데 도움이 되는 GUI 기반 워크벤치도 제공됩니다. Encog는 2008년부터 활발히 개발되어 왔습니다.
Encog는 C# Java, C를 포함한 다국어를 지원합니다
GitHub에는 다양한 언어의 소스코드가 있습니다.
http://www.heatonresearch.com/encog
https://github.com/encog
18. Crawljax
Crawljax는 오픈 소스 Java 도구입니다. Ajax 웹 애플리케이션 테스트. Crawljax는 이벤트를 트리거하고 양식에 데이터를 채워 Ajax 기반 웹 애플리케이션을 크롤링/크롤링할 수 있습니다.
포함시간: 2011-05-18 09:50:32
프로젝트 홈페이지: http://crawljax.com/
오픈소스 주소: https:/ / github.com/crawljax/crawljax
위 내용은 빅데이터를 가지고 놀 때 반드시 사용해야 하는 자바 오픈소스 웹 크롤러 19종의 내용입니다. PHP 중국어 웹사이트(www.php.cn)를 주목해주세요!