2010-01-15 2 views
4

저는 약간의 웹 사이트를 크롤링하기 위해 약간의 봇을 만들고 있습니다. 지금, 난 그냥 지금 그것을 밖으로 테스트 그리고 난 설정의 2 종류의 시도 : 매 3 초너무 공격적인 봇?

  1. 약 10 요청 -는 IP가 금지되었다가, 그래서 나는 말했다 - 좋아, 그건 너무 빨리입니다.

  2. 3 초마다 2 회의 요청 - IP가 30 분 후에 금지되고 1000 개 이상의 링크가 크롤링되었습니다.

그래도 너무 빠릅니까? 우리는 "우리는 단지 크롤링되기를 원하지 않습니까?"라는 메시지를 받으면 1.000.000 링크 가까이에서 이야기하고 있다는 것을 의미합니다. 또는 여전히 너무 빠르다?

감사합니다.

편집

다시 시도 - 나중에 나는 금지있어 30 분, 550 개 링크 -이 요청 5 초마다.

나는 2 초마다 1 회의 요청을 할 것이지만 같은 일이 일어날 것으로 생각됩니다. 나는 그를 찾을 수 있다면 내가 관리자에게 연락해야 할 것 같아.

+4

금지되기 전에 몇 페이지를 가져 왔습니까? 'robots.txt'를 요청하고 존경 해 봤어? 'User-Agent' 헤더에 무엇을 넣었습니까? – benzado

+0

robots.txt를 요청하지 않았지만 브라우저에서 먼저 확인했습니다. 대략 1000+ 페이지, 나는 확실하지 않다. 그리고 아니요, 아직 사용자 에이전트 세트가 없습니다. 아마도 내 다음 단계가 될 것입니다. – sirrocco

+0

크롤링하려는 사이트의 관리자에게 문의 해 보셨습니까? 특히 전자 메일 주소를 수집하려고하는 스팸 발송자와 같이 사악한 활동을 의심하여 ​​자신을 금지하는 경우에만 무언가를 처리 할 수 ​​있습니다. – ZoogieZork

답변

8

일부는 guidelinesforwebcrawlerpoliteness입니다.

일반적으로 페이지를 다운로드하는 데 x 초가 소요되는 경우 다시 다운로드하기 전에 최소 10x-15x를 기다리는 것이 좋습니다.

robots.txt도 수락했는지 확인하십시오.

0

예. 너무 빠릅니다.

일반적으로 크롤러는 분당 요청 비율을 1로 유지합니다.

정직하게 낮은 크롤링 속도입니다. 그러나 몇 분 후에 URL 대기열 (긴 목록 :)을 가질 수 있습니다. 특정 URL로 넘어갈 때까지이 목록을 회전 할 수 있습니다.

일종의 분산 아키텍처 (HyperV 또는 VM이더라도 네트워크 연결이 다른 여러 노드)를 사용할 수있는 옵션이 있다면 더 빠른 속도라고 생각할 수 있습니다. 그리드의 다른 호스트는 내용을보다 효과적으로 포착 할 수 있습니다.

+0

1 분? 젠장, 그건 아주 천천히 - 내년에 끝날거야 ... 내년에? – sirrocco

+0

예 ..하지만 다시 오프라인 브라우저와 다른 동작을 볼 수 있습니다. winhttrack처럼. 그들은 너무 공격적이지만 그 차이를 상상할 수는 없습니다. –

0

고려해야 할 가장 좋은 고려 사항 중 하나는 사이트 소유자입니다. 다른 사람들이 언급했듯이 robots.txt 파일은 사이트에서이 작업을 수행하는 표준입니다.

요약하면 요청 속도를 제한하는 데 사용되는 robots.txt에는 3 가지 방법이 있습니다.

크롤링 지연 : #, 요청 사이의 대기 시간 (초)을 나타내는 정수입니다.

요청 속도 : #/#, 분수를 나타내는 분모와 분모를 나타내는 분수. 3 초마다 1/3 = 1 페이지.

방문 시간 : #### - #### 두 자리 숫자는 사이트를 크롤링해야하는 시간 (HH : MM GMT 기준)을 나타내는 하이픈으로 구분됩니다.

이러한 제안/요청을 감안할 때 일부 사이트는 귀하의 통제하에있는 robots.txt에 이러한 사이트가 없습니다. 나는 당신이 하루에 소비하는 페이지의 수를 제한하면서 초당 최소 1 페이지의 적당한 속도로 유지할 것을 제안합니다.