
도메인 특정 또는 패턴 일치 웹 페이지를 효율적으로 수집하기 위해 페이지 분류기와 링크 우선순위를 사용하는 집중형 웹 크롤러로, Elasticsearch 인덱싱 및 TOR 프록시 크롤링을 지원합니다.
ACHE는 집중 웹 크롤러(focused web crawler)입니다. 특정 기준(예: 특정 도메인에 속하거나 사용자가 지정한 패턴을 포함하는 페이지)을 만족하는 웹 페이지를 수집합니다. ACHE는 일반 크롤러와 달리 *페이지 분류기(page classifiers)*를 사용하여 주어진 도메인에서 관련 페이지와 관련 없는 페이지를 구분합니다. 페이지 분류기는 단순한 정규 표현식(예: 특정 단어를 포함하는 모든 페이지를 일치시키는)부터 머신러닝 기반 분류 모델까지 다양할 수 있습니다. ACHE는 또한 관련 콘텐츠를 효율적으로 찾는 동시에 관련 없는 콘텐츠의 검색을 피하기 위해 링크의 우선순위를 자동으로 학습할 수 있습니다.
ACHE는 다음과 같은 많은 기능을 지원합니다:
버전 0.11.0부터 ACHE는 Apache 2.0 라이선스로 배포됩니다. 이전 버전은 GNU GPL 라이선스로 배포되었습니다.
프로젝트의 문서에서 더 많은 정보를 확인할 수 있습니다.
소스 코드에서 ACHE를 빌드하거나, conda를 사용하여 실행 가능한 바이너리를 다운로드하거나, Docker를 사용하여 이미지를 빌드하고 컨테이너에서 ACHE를 실행할 수 있습니다.
사전 요구 사항: 최신 버전의 Java(JDK 8 이상)를 설치해야 합니다.
소스에서 ACHE를 빌드하려면 터미널에서 다음 명령을 실행합니다:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
그러면 ache/build/install/ 아래에 설치 패키지가 생성됩니다.
그런 다음 ACHE 바이너리를 PATH 환경 변수에 추가하여 터미널에서 ache 명령을 사용할 수 있도록 할 수 있습니다:
export ACHE_HOME="{path-to-cloned-ache-repository}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
사전 요구 사항: 최신 버전의 Docker를 설치해야 합니다. 플랫폼에 맞는 Docker 설치 방법은 https://docs.docker.com/engine/installation/를 참조하세요.
릴리스된 각 버전에 대해 Docker Hub에 사전 빌드된 도커 이미지를 게시합니다. 최신 이미지는 다음 명령으로 실행할 수 있습니다:
docker run -p 8080:8080 vidanyu/ache:latest
또는 직접 이미지를 빌드하고 실행할 수도 있습니다:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
Dockerfile은 두 개의 데이터 볼륨을 노출하므로 구성 파일 디렉토리(/config)를 마운트하고 컨테이너가 중지된 후에도 크롤러 저장 데이터(/data)를 보존할 수 있습니다.
사전 요구 사항: 시스템에 Conda 패키지 관리자가 설치되어 있어야 합니다.
Conda를 사용하는 경우 Anaconda Cloud에서 ache를 설치할 수 있습니다:
conda install -c vida-nyu ache
참고: 릴리스된 태그 버전만 Anaconda Cloud에 게시되므로 Conda를 통해 사용 가능한 버전이 최신이 아닐 수 있습니다. 최신 버전을 사용해보려면 저장소를 클론하여 소스에서 빌드하거나 Docker 버전을 사용하세요.
크롤링을 시작하기 전에 ache.yml이라는 구성 파일을 생성해야 합니다.
저장소의 config 디렉토리에서 시작하는 데 도움이 되는 몇 가지 구성 샘플을 제공합니다.
또한 pageclassifier.yml이라는 페이지 분류기 구성 파일이 필요합니다.
페이지 분류기 구성 방법에 대한 자세한 내용은 페이지 분류기 문서를 참조하세요.
분류기를 구성한 후 마지막으로 필요한 것은 시드 파일입니다. 즉, 한 줄에 하나의 URL이 포함된 일반 텍스트 파일입니다. 크롤러는 이 URL을 사용하여 크롤링을 부트스트랩합니다.
마지막으로 다음 명령을 사용하여 크롤러를 시작할 수 있습니다:
ache startCrawl -o <data-output-path> -c <config-path> -s <seed-file> -m <model-path>
여기서,
<configuration-path>는 ache.yml이 포함된 구성 디렉토리의 경로입니다.<seed-file>은 시드 URL이 포함된 시드 파일입니다.<model-path>는 pageclassifier.yml 파일이 포함된 모델 디렉토리의 경로입니다.<data-output-path>는 데이터 출력 디렉토리의 경로입니다.저장소에 있는 샘플 사전 학습된 페이지 분류기 모델과 샘플 시드 파일을 사용한 ACHE 실행 예시:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
크롤러가 실행되고 로그가 콘솔에 출력됩니다. 언제든지 Ctrl+C를 눌러 중지할 수 있습니다(시간이 다소 걸릴 수 있습니다).
긴 크롤링의 경우 nohup과 같은 도구를 사용하여 백그라운드에서 ACHE를 실행해야 합니다.
ACHE는 여러 형식으로 데이터를 출력할 수 있습니다. 현재 사용 가능한 데이터 형식은 다음과 같습니다:
데이터 형식 구성에 대한 자세한 내용은 데이터 형식 문서 페이지를 참조하세요.
사용자 피드백을 환영합니다. 제안, 질문 또는 버그 신고는 Github 이슈 트래커를 이용해 주세요.
Gitter에서 채팅방도 운영하고 있습니다.
코드 기여를 환영합니다. 탭에 4개의 공백을 사용하는 Google 스타일 가이드에서 파생된 코드 스타일을 사용합니다. Eclipse Formatter 구성 파일은 저장소에서 확인할 수 있습니다.