2009-03-18 6 views
-1

저는 꽤 잘 작동하는 매우 간단한 크롤링 엔진을 조합했으며 대부분 순환 루프 트랩에 걸리지 않았습니다. (즉, 페이지 A 링크는 페이지 B와 페이지 B는 페이지 A 링크).페이지를 크롤링 할 때 CacheBuster 쿼리를 감지합니다.

두 번째 페이지가 캐시 버스터 쿼리 문자열로 서로 링크 될 때만이 루프에서 멈추게됩니다. 기본적으로 새로 고침 당 각각의 링크마다 고유 한 쿼리 문자열입니다.

이렇게하면 페이지가 항상 크롤러의 새 페이지처럼 보이게되어 크롤러가 두 페이지 사이에서 움직이지 않게됩니다.

질의어가 유일한 차이점 인 두 페이지 사이에 N 개의 바운스가 발생하는 것을 제외하고는 (나는 아주 좋은 접근이라고 생각하지 않습니다.), 이것들을 탐지하고 벗어나는 다른 방법이 있습니까? 트랩...?

답변

0

어쩌면 그들은 단지 세션 ID가 아닌 "캐시 동무는"나는 비슷한 문제를 해결했다 우리는 간단한 해결책을 발견, 쿠키가 몇 년 전

도움이 될 것입니다 --- 같습니다 쿠키를 사용하도록 설정 귀하의 웹 클라이언트. 이것이 우리를 도운 이유에 대한 설명입니다.

일부 URL (특히 광고 이미지)은 "캐시를 손상"시키는 것이 사실입니다. 그러나 우리는 그들과 순환 참조를 찾지 못했습니다.

많은 URL이 에 방문자을 식별하기 위해 URL에 임의의 문자열을 추가합니다. 캐시를 파열 할 의도는 없습니다. 이것은 방문자마다 고유 한 "세션 식별자"를 얻는 방법의 부작용입니다.

물론 방문자를 쿠키로 식별하는 것이 훨씬 더 좋습니다. 사실 세션 식별자를 사용하는 대부분의 동적 사이트는 쿠키를 먼저 시도합니다. 웹 클라이언트가 웹 클라이언트를 지원하지 않는다는 사실을 알게 된 경우에만 URL에 세션 ID를 추가합니다.

결론 :

  • 쿠키를 활성화함으로써, 우리는 행복에서 가장 역동적 인 사이트를 유지하고 URL을 무작위 문자열 (세션 식별자)를 피할 수 있습니다.
  • 광고주 do은 캐시 버스터를 사용하지만 대부분 순환 참조가 없습니다.

이 문제가 해결되었습니다.

관련 문제