2017-09-25 2 views
-2

변경 사항을 모니터링하는 웹 사이트가 어떻게 작동하고 그 뒤에 사용되는 개념이 무엇인지 이해하려고합니다. 전체 웹 사이트를 크롤링하고 크롤링 된 웹 페이지를 데이터베이스의 한 저장소와 비교하고 웹 페이지가 업데이트 된 경우 html로 기존 페이지를 덮어 쓰거나 웹 사이트가없는 경우 데이터베이스에 저장하는 크롤러를 만들 수 있습니다. 내 질문은 다음과 같습니다. 1- 두 웹 페이지가 동일한 경우 어떻게 비교할 수 있습니까? 웹 페이지 문자의 문자열을 문자별로 비교해야합니까? 2 전체 웹 사이트를 크롤링해야합니까? 웹 사이트의 html 페이지 크기가 5Gb라고 가정 해 보겠습니다. 매시간 5GB의 데이터를 크롤링하고 다운로드하면 많은 대역폭을 먹을 것입니다.웹 사이트 모니터링은 어떻게 작동합니까?

코드를 작성할 수 있습니다. 웹 사이트 모니터링에 사용되는 일반적인 방법을 알고 싶습니다.

고맙습니다.

+0

변경 사항을 결정하기 위해 Last-Modification 헤더를 사용한다고 생각합니다. 그리고 크롤링 요청이 있으면 다시 크롤링합니다. –

답변

0

한 가지 옵션은 HTML로 전체 페이지가 아닌 데이터베이스의 페이지 해시를 저장하는 것입니다. 이렇게하면 저장된 값과 비교하여 값을 확인할 수 있습니다. 하지만 이렇게하려면 페이지를 "읽어야"합니다. 예, 5GB 인 사이트는 여전히이 작업을 수행하기 위해 5GB를 "다운로드"합니다.

페이지, URL, 마지막으로 업데이트 된 내용, 해시 등의 메타 데이터 만 보유하고 있다고 가정 할 때 사용자가이 작업을 수행하는 이유를 실제로 말하지 않았습니다.

아마도 마틴 조네 (Martin Joneš)는 대부분 페이지 머리글을 가져 와서 마지막 수정 매개 변수를 확인하는 것이 좋습니다.

나는 자신이 소유하거나 운영하는 사이트에서만이 작업을 수행하고 있다고 가정합니다. 나는 내 사이트를 크롤링하는 멍청한 "마케팅"봇들보다 더 싫어하지 않아 내 대역폭 사용을 제로로 증가시킵니다. 그들은 단지 그것의 지옥에 대한 내 대역폭을 먹고있어.

+0

자세한 의견을 보내 주셔서 감사합니다. 나는 단지 교육 목적으로 그것을하고 있으며 크롤링 작업이 어떻게 진행되는지, 특히 검색 엔진이 어떻게 수백만 개의 웹 사이트를 크롤링 하는지를 알아 내려고합니다. 또한 Last-modification 헤더는 새로운 것이 었습니다. 웹 페이지가 아닌 웹 페이지의 마지막 수정 시간을 테스트하는 데만 사용할 수 있다고 생각합니다. 웹 사이트가 전체 웹 사이트를 크롤링하는 대신 헤더 등을 사용하여 * 새 * 웹 페이지/콘텐츠를 추가했는지 테스트 할 수 있습니까? – Anon

+0

sitemap.xml을 확인하려면 이전 버전과 비교할 수 있다면 이미 저장 했어야합니다. 사이트가 모든 페이지를 sitemap.xml에 추가한다고 가정합니다. 하지만 그 외에는 쉬운 방법이 없습니다. 페이지는 자신에 대한 엔티티이므로 사이트 맵이 아닌 구현 된 경우 사이트 체크가 아닌 중앙 확인이 없습니다. 검색 엔진은 사이트 맵을 사용하지만 페이지의 단어 색인을 생성하여 페이지 전체를 명확하게 다운로드합니다. 또한 사이트 구조를 결정하기 위해 하이퍼 링크를 사용합니다. – Tyroga

관련 문제