문제

IM은 대규모 웹 크롤러를 구축합니다. 인터넷 서버 농장에있는 전용 웹 서버에서 웹을 실행할 때 웹을 크롤링 할 때 가장 많은 인스턴스가 최적입니다.

도움이 되었습니까?

해결책

spare_memory_on_machine / memory_footprint_of_crawler_process * 0.95

다른 팁

대규모 크롤러를 만들려면 다음과 같은 몇 가지 문제를 처리해야합니다.

• 정보를 하나의 데이터베이스에 모두 유지할 수 없습니다.

• 거대한 색인을 처리하기에 충분한 RAM이 없습니다.

• 멀티 스레드 성능 및 동시성

• 크롤러 트랩 (URL, 캘린더, 세션 ID를 변경하여 생성 된 무한 루프 및 복제 된 컨텐츠.

• 둘 이상의 컴퓨터에서 크롤링합니다

• 기형 HTML 코드

• 서버의 일정한 HTTP 오류

• 압축없이 데이터베이스는 약 8 배 더 큰 공간을 필요로합니다.

• 일상 및 우선 순위를 다시 할 수 있습니다.

• 압축 (deflate/gzip)과 함께 요청을 사용하십시오 (모든 종류의 크롤러에 적합).

그리고 몇 가지 중요한 것들

• Respect Robots.txt

• 웹 서버를 질식시키지 않도록 각 요청의 크롤러 지연.

최적의 스레드 구성은 코드에 따라 다릅니다. .NET을 사용하여 100 프로세스를 실행합니다. 불필요한 열린 스레드를 피하기 위해 스케줄 클래스를 사용하는 것이 좋습니다.

추신. 5 개의 스레드를 사용하는 경우 "대규모"웹 크롤링에 도달하는 데 몇 년이 걸립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top