2014-12-08 2 views
0

작년에 검색 엔진을위한 크롤러를 만들고 있었고 페이지 최신성을 처리하는 데 문제가있었습니다. 페이지가 시간이 지남에 따라 바뀌므로이 변경 사항을 추적하고 콘텐츠 변경 사실을 알게되면 해당 페이지를 다시 크롤링해야합니다.페이지 최신 성을 처리하는 방법 크롤러에서?

그래서 우리는 우리 교수에게이 문제에 대한 해결책을 물었고 그는이 페이지의 사이트 맵을 찾아 달라한다고했습니다. 모든 페이지에이 문제를 해결하는 데 도움이 될 수있는 사이트 맵이있는 것은 아니며, 임의의 시간 값을 사용하여 모든 것을 다시 크롤링하는 이상한 해결책을 우리에게 말했습니다.

그건 내가 문제를 조사해 보았고 도움이 될만한 것을 찾지 못했다고 말했습니다. 그래서 최소한의 효율성으로이 문제를 해결하기 위해 크롤링 한 모든 페이지의 해시 값을 저장 한 다음이 임의의 시간 후에 다시 크롤링 할 때 현재 페이지 해시 값을 확인하고 마지막으로 저장된 해시 값을 비교합니다. 차이가 있다면이 페이지를 다시 크롤링합니다. 페이지가 규칙을 사용하거나하지 않는 경우

내가 페이지 최신 성을

답변

2

음을 추적하는보다 효율적인 방법이 있는지 알고 싶어, 그것은에 따라 달라집니다. 대부분의 주요 웹 사이트는 캐시 제어 헤더 (또는 마지막 수정 및 ETag)를 사용합니다. 크롤링하는 사이트에서 페이지를 사용하는 경우 페이지가 변경되면이를 알려야합니다. 그래서 이것을 넓게 적용하고 효율적인 방법은 그러한 것들을 확인하고 존재한다면 그것을 사용하는 것이라고 생각합니다. 존재하지 않으면 페이지 해시 방식을 사용할 수 있습니다. 예를 들어 문제의 사이트가 동적으로 서버의 사소한 변경 사항을 렌더링하는 경우 (예 : 현재 날짜/시간) , 렌더링 시간 등).

+0

내가 페이지를 해시하는 데 사용한 기술은 실제로 사용 되었습니까? 또는 그들은 일반적으로 마지막 수정 및 ETag 확인에 집중합니까? – AerRayes

+1

대체 fallback 전략은 좋지 않지만 대부분의 사람들은 etags를 사용하여 수정했습니다. – Paul

관련 문제