2010-08-06 9 views
5

저는 지난 한 달 동안 웹 크롤링 프로젝트에 Scrapy를 사용해 왔습니다.속도를위한 최고의 웹 그래프 크롤러?

이 프로젝트는 홈 페이지에서 연결할 수있는 단일 도메인 이름으로 모든 웹 페이지의 전체 문서 내용을 가져와야합니다. Scrapy를 사용하여 이것을 작성하는 것은 매우 쉬웠지만 너무 느리게 진행됩니다. 2 ~ 3 일 만에 10 만 페이지를 끌어 올 수 있습니다.

나는 Scrapy가이 유형의 크롤링을 의미하지 않는다는 나의 초기 개념이 스스로를 드러내는 것을 깨달았다.

성능 향상을 위해 Nutch와 Methabot에 내 시야를 집중시키기 시작했습니다. 크롤링하는 동안 저장해야하는 유일한 데이터는 웹 페이지의 전체 내용이며 페이지의 모든 링크 (가급적이면 사후 처리에서 수행 할 수 있음)입니다.

저는 많은 패러랠 요청을 빠르게 처리하는 크롤러를 찾고 있습니다.

답변

5

이 서버는 Scrapy가 아닙니다. 서버가 너무 빠르지 않을 수도 있고, 웹 마스터가이 연결/쿠키의 크롤링 속도 및 속도를 감지 할 수도 있습니다. 프록시를 사용합니까? 이렇게하면 크롤링 속도가 느려질 수 있습니다. 이것은 Scrapy의 지혜가 될 수 있습니다. 너무 크면이 서버를 금지시킬 수 있습니다. 내 C++의 경우 handwritten crawler 초당 1 회의 요청을 인위적으로 설정했습니다. 하지만이 속도는 1 스레드 (1 req * 60 초 * 60 분 * 24 시간 = 86400 req/day)에 충분합니다. 관심이 있으시면 whalebot.helmsman {AT} gmail.com에 이메일을 보내주십시오.

+0

ISP 일 수도 있습니다. –

2

Scrapy를 사용하면 동시 요청 수와 요청 간 지연 시간을 its settings (으)로 확인할 수 있습니다.

0

병목 현상이 어디 있는지 알고 있습니까? whalebot.helmsman이 지적했듯이, 한도는 Scrapy 자체가 아니라 크롤링중인 서버에서 발생합니다.

병목 현상이 네트워크 또는 CPU인지 확인해야합니다.