2011-04-13 3 views
0

취미 프로젝트로 작은 크롤러를 만들고 있습니다. 내가하고 싶은 것은 백만 페이지를 기어 다니고 데이터베이스에 저장하는 것뿐입니다. (예, 업데이트 될 수 있지만 특정 시간의 항목은 1 백만 개입니다.) 이러한 것들이 어떻게 작동하는지 알기 만하면됩니다.크롤러가이 서버 구성에서 작동합니까?

PHP/MySQL로 코딩하고 싶습니다. I 은 검색 기능을 제공하지 않으므로 검색 기능을 원하지 않습니다. 필자가 원하는 것은 데이터베이스에서 직접 SQL 쿼리를 거의 실행할 수 없어야한다는 것입니다.

데이터베이스에서 나는 별도의 txt 파일에 저장하고자하는 페이지 텍스트를 저장하지 않을 것입니다 (실행 가능할 지 모르겠습니다). 제목, 링크 및 기타 정보 만 저장됩니다. 기본적으로 쿼리를 실행하면 결과가 나옵니다. 이러한 파일에서 텍스트 데이터를 가져올 수 있습니다.

이 디자인이 다음 환경에서 가능할 지 알고 싶습니다.

Linode (512MB RAM)에서 VPS를 구입할 예정입니다. 전용 서버로 갈 수 없으며 공유 호스트가이 작업을 허용하지 않을 것입니다.

내 질문 : 필요할 때 배치 모드로 쿼리를 실행할 수있는이 큰 데이터베이스 (1 백만 행)를 유지할 수 있습니까?

모든 종류의 제안을 환영합니다. 다른 호스팅 옵션도 환영합니다.

+0

아마도 도움이 될 것입니다. http://www.sphider.eu/ –

+1

백만 페이지가 소요됩니다. 귀하의 ISP가 괜찮기를 바랍니다. –

+0

@experimentX 데이터베이스를 크롤링하고 확장 성 문제가 거의 발생하지 않도록 맞춤 설정하고 싶습니다. 귀하의 링크 주셔서 감사합니다 :) – Ankit

답변

0

웹 크롤러를 처음부터 작성하는 것은 최소한 수백만 페이지를 크롤링하려는 경우 상당한 작업입니다. 나는 Heritrix 웹 크롤러에 대한 개인적인 경험을 통해 이것을 알고 있습니다.

Heritrix 개발자 가이드에서 "Overview of the crawler"장을 읽는 것이 좋습니다. 이 장에서는 고급 디자인을 다루며 크롤러의 기본 구성 요소를 파악하는 데 도움을줍니다.

간단히 말해서 '크롤링 상태'와 '처리 중'이됩니다. 크롤링 상태는 내가 본 URL, 크롤링 한 URL 등입니다. 처리하는 동안 URL을 가져 오는 작업과 링크를 추출하는 후속 처리, 다운로드 한 데이터 저장 등이 포함됩니다. 일반적으로 여러 처리 스레드는 병렬로 실행됩니다.

+0

링크를 제공해 주셔서 감사합니다. 그것을 통해. :) – Ankit

0

Scrapy을 사용해 볼 수도 있습니다. 빠르고, Linode 512M 서버에서도 잘 작동하지만 파이썬으로 작성되었습니다.

+0

그게 좋은 도구.감사합니다 :) – Ankit

+0

btw @hoffman은 저자입니다 .. – goh

관련 문제