Web Crawler

image1 (이미지 출처 : https://www.simplilearn.com/what-is-a-web-crawler-article)

웹 크롤러 봇이란?

웹 크롤러는 스파이더 또는 검색 엔진 봇이라고도 하며, 전체 인터넷에서 콘텐츠를 다운로드하고 색인을 생성합니다.

이러한 봇의 목표는 웹 상의 (거의) 모든 웹페이지가 무엇에 대한 것인지 파악하여 필요할 때 정보를 추출할 수 있도록 하는 것입니다.

이를 “웹 크롤러”라고 부르는 것은, 소프트웨어 프로그램을 통해 자동으로 웹사이트에 액세스하여 데이터를 얻는 일을 기술 용어로 “크롤링”이라고 하기 때문입니다.

이러한 봇은 대부분 검색 엔진이 운영합니다.

검색 엔진은 웹 크롤러가 수집한 데이터에 검색 알고리즘을 적용함으로써, 사용자의 검색 질의에 대한 응답으로 관련 링크를 제공합니다.

이를 통해, Google 또는 Bing 등의 검색 엔진에 검색을 입력하고 나면, 웹페이지 목록이 표시되는 것입니다.

웹 크롤러 봇은, 정리되지 않은 도서관의 모든 책을 검토하고 카드 카탈로그를 구성함으로써, 도서관을 찾는 이가 필요한 정보를 빠르고 쉽게 찾을 수 있도록 도와주는 사람과 유사합니다.

이 사람은 도서관의 책을 주제별로 분류하고 정렬할 수 있도록, 책의 제목, 요약, 본문 중 일부를 읽어 무엇에 대한 책인지 파악할 것입니다.

그러나, 인터넷은 도서관과 달리, 물리적인 책 더미로 구성되지 않기 때문에, 필요한 정보를 모두 적절히 색인화하였는지, 상당한 부분을 간과했는지 판단하는 것이 쉽지 않습니다.

웹 크롤러 봇은 인터넷이 제공하는 관련 정보를 모두 찾기 위해, 알려진 일련의 웹 페이지에서 시작해 다른 페이지로 연결된 하이퍼링크를 따라가고, 또 거기에서 다른 페이지로 하이퍼링크를 따라가는 식으로 작동합니다.

공개된 인터넷 중 얼마나 많은 부분을 검색 엔진 봇이 실제로 크롤링하는지는 알려져 있지 않습니다.

정보원의 추정에 따르면, 인터넷의 40-70%만을 검색용으로 색인화한다고 합니다.

이것만으로도 수십억 개의 웹 페이지에 해당합니다.

검색 색인화란?

검색 색인화는 정보를 필요로 하는 사람에게 인터넷의 어디에서 그 정보를 찾을 수 있는지 알려주기 위해 검색 엔진이 만드는, 인테넷의 도서관 카드 카탈로그 같은 것입니다.

책의 뒤에 있어서, 특정 항목 또는 문구가 책의 어디에 있는지 알려주는 색인과도 유사합니다.

색인화는 주로 페이지에 나타나는 텍스트와 사용자에게 보이지 않는, 페이지에 대한 메타데이터*에 중점을 둡니다.

대부분의 검색 엔진은 특정 페이지를 색인화할 때 해당 페이지의 모든 단어를 추가합니다(Google의 경우, “a”, “an”, “the”는 제외). 사용자가 해당 단어를 검색하면 검색 엔진은 해당 단어가 나타나는 모든 페이지의 색인을 검토해, 가장 관련성이 높은 페이지를 선택합니다.

*검색 색인화에서, 메타데이터는 웹사이트가 무엇에 대한 것인지 알려주는 데이터를 말합니다. 메타 제목과 메타 설명은 사용자가 볼 수있는 웹 페이지의 콘텐츠와 달리 검색 엔진 결과 페이지에 표시되는 경우가 많습니다.

웹 크롤러의 작동 방식

인터넷은 끊임없이 변화하며 확대하고 있습니다.

인터넷에 얼마나 많은 웹페이지가 있는지 알 수 없으므로, 웹 크롤러 봇은 종자, 즉 알려진 URL 목록에서 시작합니다.

먼저 해당 URL에서 웹페이지를 크롤링합니다.

이 과정에서 다른 URL에 대한 하이퍼 링크를 찾게 되면, 다음으로 크롤링할 페이지 목록에 추가합니다.

검색을 위해 색인화해야 할 인터넷 웹페이지의 수는 막대하므로, 이러한 과정은 거의 무한히 이어질 수 있습니다.

하지만, 웹 크롤러는 크롤링할 페이지, 크롤링 순서, 콘텐츠 업데이트를 확인하기 위해 다시 크롤링하는 빈도에 대해 보다 선택적인 정책을 따릅니다.

각 웹페이지의 상대적 중요성: 대부분의 웹 크롤러는 공개된 인터넷 전체를 크롤링하지 않으며, 그렇게 하려고 하지도 않습니다.

그 대신, 해당 페이지에 중요한 정보가 포함될 가능성을 나타내는 요소인 해당 페이지를 링크하고 있는 다른 페이지 수, 페이지 방문자 수 등의 요소를 기준으로 먼저 크롤링할 페이지를 결정합니다.

다른 웹페이지에서 많이 언급하며 방문객이 많은 웹페이지에는 권위 있는 고품질의 정보가 있을 가능성이 크므로, 검색 엔진이 색인을 작성하는 것이 특히 중요합니다. 대출이 많은 도서는 다수를 보유하는 도서관과 마찬가지입니다.

웹페이지 재방문: 웹 콘텐츠는 지속적으로 변경되거나 삭제되고 새로운 위치로 이동합니다.

웹 크롤러는 정기적으로 페이지를 다시 방문하여 최신 버전의 콘텐츠를 색인화해야 합니다.

Robots.txt: 웹 크롤러는 또한 어떤 페이지를 크롤링할 것인지 robots.txt protocol을 기준으로 결정합니다.

웹페이지를 크롤링 하기 전에 크롤러는 해당 서버의 robots.txt 파일을 확인합니다.

robots.txt파일은 특정한 규격으로 작성되어 있으며 어떠한 봇이라도 접근 가능합니다.

이 규격은 크롤러에게 어떠한 페이지가 크롤링이 가능한지 정의하고, 어떤 링크에 접속가능한지 정의 합니다.

예시파일 링크

검색 엔진마다 스파이더 봇 내의 전용 알고리즘 내에 이들 요인의 가중치를 다르게 설정합니다.

따라서, 콘텐츠를 다운로드하고 색인화한다는 최종 목표는 같지만, 웹 크롤러의 작동 방식은 검색 엔진마다 차이가 있습니다.

웹 크롤러를 ‘스파이더’라고 부르는 이유?

인터넷 전체 혹은 대부분의 사용자가 실제로 접속하는 부분은 월드 와이드 웹(World Wide Web)이라고 합니다.

대부분의 웹사이트 URL에 있는 “www”가 바로 여기에서 온 것입니다.

진짜 거미(스파이더)가 거미줄을 기어다니듯이 검색 엔진 봇이 웹(원래는 ‘거미줄’이라는 뜻임) 전체를 기어다니므로(‘크롤’의 원래 뜻) ‘스파이더’라고 부르는 것은 자연스러운 일입니다.

웹 크롤러 봇이 언제나 웹 자산에 액세스하도록 허용해야 하는가?

이는 웹 자산에 따라 다르며, 다수의 요인에 달려 있습니다.

웹 크롤러가 콘텐츠를 색인화하려면 서버 자원이 필요합니다.

웹 크롤러는 웹사이트를 방문하는 일반 사용자나 웹사이트에 액세스하는 다른 봇과 마찬가지로 서버의 응답이 필요한 요청을 냅니다.

과도한 색인화는 서버에 큰 부담을 주거나, 대역폭 비용을 늘릴 수 있으며, 둘 다 해당하는 경우도 있으므로, 각 페이지의 콘텐츠 양이나 사이트 내의 페이지 수에 따라, 검색 색인화를 자주 허용하지 않는 것이 웹사이트 운영자에게 유리한 경우도 있습니다.

또한, 개발자나 회사가 (페이월 또는 로그인 뒤에 페이지를 두지 않고) 사용자에게 링크를 준 경우 이외에는 웹페이지를 외부에서 찾지 못하게 하기를 원할 수도 있습니다.

기업에서 마케팅 캠페인 전용 랜딩 페이지를 만들면서, 캠페인 대상이 아닌 사람이 페이지에 액세스하는 것은 원하지 않는 경우가 그 예입니다.

이러한 방식으로 메시지를 맞춤화하거나 페이지 성능을 정확하게 측정할 수 있기 때문입니다.

이 경우, 랜딩 페이지에 “no index” 태그를 추가하여 검색 엔진 결과에 표시되지 않게 할 수 있습니다.

또한, 페이지나 robots.txt 파일에 “disallow” 태그를 추가할 수도 있으며, 이렇게 하면, 검색 엔진 스파이더는이를 크롤링하지 않습니다.

웹사이트 소유자가 다양한 이유로 웹 크롤러 봇이 사이트의 일부 또는 전부를 크롤링하지 못하게 하고자 하는 경우도 있습니다.

예를 들어, 사용자에게 사이트 내의 검색 기능을 제공하는 웹사이트는 검색 결과 페이지를 차단할 수 있습니다.

이들은 대부분의 사용자에게 유용하지 않기 때문입니다.

한 명의 사용자 또는 소수의 특정 사용자에게만 유용한 자동 생성 페이지도 차단해야 합니다.

웹 크롤링과 웹 스크래핑의 차이점?

웹 스크래핑, 데이터 스크래핑, 콘텐츠 스크래핑은 봇이 허가 없이 웹사이트의 콘텐츠를 다운로드하는 경우를 말하는데, 해당 콘텐츠를 악의적인 목적으로 이용하려는 의도가 있는 경우가 많습니다.

웹 스크래핑은 대개 웹 크롤링보다 대상이 명확합니다. 웹 크롤러는 계속 링크를 따라가며 크롤링하지만, 웹 스크래퍼는 특정 페이지 또는 특정 웹사이트만을 추적하기도 합니다.

또한, 웹 크롤러, 특히 주요 검색 엔진의 웹 크롤러는, robots.txt 파일을 준수하고 웹 서버에 부담이 되지 않도록 요청을 제한하는 데 비해, 웹 스크래퍼 봇은 웹 서버에 대한 영향을 무시하기도 합니다.

웹 크롤러가 SEO에 영향을 미치는 방식

SEO는 검색 엔진 최적화를 의미하며, 웹사이트가 검색 엔진 결과의 상단에 표시되도록 콘텐츠를 검색 색인화에 맞게 준비하는 방식을 말합니다.

스파이더 봇이 웹사이트를 크롤링하지 않으면, 해당 사이트는 색인화되지 않고, 검색 결과에 표시되지 않습니다.

그러므로, 웹사이트 소유자가 검색 결과를 통한 자연스러운 트래픽을 얻으려면 웹 크롤러 봇을 차단하지 않아야 합니다.

어떤 웹 크롤러 봇이 인터넷에서 활동하고 있는가?

주요 검색 엔진의 봇은 다음과 같습니다.

Google: Googlebot(실제는 데스크톱 검색용인 Googlebot Desktop 및 과 모바일 검색용인 Googlebot Mobile의 두 가지 크롤러)

Bing: Bingbot

Yandex(러시아 검색 엔진): Yandex Bot

Baidu(중국 검색 엔진): Baidu Spider

이외에도 덜 알려진 웹 크롤러 봇이 많이 있으며, 이 중에는 검색 엔진과 연결되지 않은 것도 있습니다.

원문링크