Python 웹 크롤러 0에서 1 (2) : 웹 크롤러의 특성, 문제 및 사양

  웹 크롤러의 개발은 사용자가 네트워크 정보를 이해하고 수집하는 데 편리함을 제공하지만 크고 작은 문제가 많고 네트워크 보안에 특정 해를 끼칠 수도 있습니다. 따라서 실제로 웹 크롤러를 이해하기 시작하기 전에 웹 크롤러의 특성, 발생하는 문제 및 웹 크롤러를 개발하고 사용하는 과정에서 따라야 할 사양을 이해해야합니다.

웹 크롤러

웹 크롤러의 크기 분류

크기 특성 목적 실현하는 방법
소규모 데이터 양이 적고 크롤링 속도에 민감하지 않으며 양이 매우 큽니다. 웹 페이지 크롤링, 웹 페이지 정보 탐색 요청 라이브러리
중간 규모 많은 양의 데이터, 크롤링 속도에 더 민감 함 웹 사이트 및 일련의 웹 사이트 크롤링 스크래피 프레임 워크
대판 데이터 양과 규모가 매우 커서 대부분 검색 엔진에서 사용되며 크롤링 속도가 매우 중요합니다. 인터넷의 모든 웹 사이트 크롤링 맞춤 제작

웹 크롤러로 인한 문제

 시스템 부담

  기술적 한계와 크롤링 목적으로 인해 일부 웹 크롤러에 의해 생성되는 네트워크로드는 사용자의 액세스로드보다 훨씬 커서 웹 사이트 및 웹 서버 시스템 리소스 오버 헤드에 큰 대역폭 부담을 부과하고 웹 사이트의 정상적인 운영에 어느 정도 부담을줍니다. 따라서 웹 사이트 소유자의 경우 웹 크롤러 (특히 불규칙적으로 실행되는 크롤러)가 웹 사이트에 특정 괴롭힘을 유발합니다.

 법적 위험

  웹 사이트의 데이터는 일반적으로 재산권이 있기 때문에 일부 웹 크롤러가 분석 및 판매를 통해 데이터를 획득하면 웹 사이트에 경제적 손실을 가져오고 개발 및 사용자에게 법적 위험을 초래할 수 있습니다. 따라서 웹 크롤러 디자이너는 크롤러를 디자인 할 때 인터넷 및 기업 크롤러 관리 규정을 엄격하게 따라야합니다. 그렇지 않으면 특정 결과를 초래할 수 있습니다.

 개인 정보 유출

  일부 소유자가 사용자의 액세스를 원하지 않는 개인 데이터가 웹 사이트에있을 수 있습니다. 일부 웹 사이트는 데이터를 보호하기 위해 약한 액세스 제어를 사용할 수 있지만 일부 웹 크롤러는 이러한 액세스 제어를 우회하거나 뚫을 수 있습니다. 웹 사이트가 정보를 제대로 보호하지 못하여 정보가 실수로 유출되면 심각한 정보 보안 문제가 발생할 수 있습니다.


웹 크롤러 사양

  웹 크롤러는 위에서 언급 한 문제를 가져올 수 있지만 동시에 웹 크롤러 자체는 유해한 도구가 아니므로 인터넷 및 다양한 웹 사이트에서 주어진 제한에 따라 웹 크롤러를 실행할 수 있습니다. 다음으로 웹 사이트와 인터넷이 크롤러를 제한하는 방법을 살펴 보겠습니다.

 웹 크롤러의 한계

  소스 검토

  일부 웹 사이트는 비교적 간단한 소스 확인을 사용하여 액세스를 제한합니다. 원칙은 네트워크 User-Agent요청 에서 요청 헤더의 필드 를 분석 하여 요청을 필터링하는 것입니다. 웹 사이트는 브라우저와 친숙한 크롤러의 방문 요청에만 응답합니다. 소스 리뷰에는 웹 사이트 개발자의 기술 수준에 대한 특정 요구 사항이 있습니다.

  출시 발표 (로봇 계약)

  웹 사이트는 공지를 발행하는 방법을 사용하여 모든 크롤러에게이 웹 사이트의 크롤링 전략을 알리고 웹 사이트를 크롤링하는 모든 크롤러가이를 준수하도록 요구합니다. 현재 인터넷의 주류 알림 프로토콜 Robots은 웹 사이트에서 크롤링 할 수있는 콘텐츠와 크롤링 할 수없는 콘텐츠를 규정하는 프로토콜입니다. 이 방법은 더 간단하고 웹 사이트 개발자에 대한 요구 사항이 낮습니다. 그러나 이러한 공지 사항을 게시하는 방법은 경우에 따라 크롤러 개발자에게 도덕적 제한을 부과 할 뿐이며 다른 액세스 제어 방법과 협력하지 않는 경우 크롤러가 의도적으로 방문하면 쉽게 비공개 콘텐츠를 찾을 수 있습니다. 그러나이 계약을 위반하는 크롤러의 개발 및 사용자는 높은 법적 위험에 직면하게됩니다. 또한 크롤러를 설계 할 때 이러한 발표의 요구 사항을 따라야합니다.

 로봇 계약

Robots프로토콜 (Robots Exclusion Standard) 은 웹 크롤러에게 웹 사이트 의 루트 디렉토리에 있는 robots.txt파일을 통해 크롤링 할 수있는 페이지와 크롤링 할 수없는 페이지를 알려줍니다. 웹 사이트가 루트 디렉토리에이 파일을 제공하지 않는 경우 네트워크의 모든 크롤러는 기본적으로 웹 사이트 콘텐츠를 크롤링 할 수 있습니다.

  로봇 프로토콜 형식

로봇 계약의 내용은 주로 다음 키워드, 와일드 카드, 특정 이름 및 경로로 구성됩니다.

키워드, 와일드 카드 기술
사용자 에이전트: 특정 이름을 가진 크롤러에 대한 규정 (시작)
허용하다: 허용 된 콘텐츠
금지 : 금지 된 콘텐츠
* 무엇이든 의미하는 와일드 카드
$ 선행 콘텐츠로 끝나는 와일드 카드
  • 참고 : 키워드의 콜론은 모두 영어로되어 있으며 콜론 뒤에 공백이 있습니다.
  • User-agent키워드는 크롤러 요청의 User-agent헤더 필드 에 해당합니다.
  • 다른 크롤러에 대한 규칙 사이에 빈 줄이 있습니다.
  • Allow키워드는 키워드의 Disallow반대 효과를 가지며 거부 된 특정 하위 디렉토리를 제외 할 수 있습니다.
  • 액세스를 금지해야하는 웹 페이지가없는 경우 규칙 행을 작성해야합니다. 일반적으로 키워드 Disallow공백 뒤에 직접 바꿈 (또는 Allow키워드 뒤에 /루트 디렉토리 표시하는 데 사용)
  • ? 특별한 의미는없고 의미 만 있는가?

다음은 robots.txt소개를 위해 Baidu에서 발췌 한 것입니다 .

User-agent: Baiduspider
Disallow: /baidu
Disallow: /s?
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Googlebot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

...

User-agent: *
Disallow: /

Baidu는 Baiduspider특정 디렉터리를 Baidu 검색 엔진 Googlebot의 기본 크롤러로 제한하고 더 많은 콘텐츠를 Google 검색 엔진의 기본 크롤러로 제한합니다. 모든 허용 목록이 하나씩 User-agent: *있고 루트 디렉토리를 금지합니다. 즉, Baidu 웹 사이트는 위의 친숙한 크롤러를 제외한 모든 크롤러가 웹 페이지를 크롤링하지 못하도록 금지합니다.

  로봇 프로토콜을 따르는 방법

  웹 크롤러는 robots.txt파일 콘텐츠 를 자동 또는 수동으로 식별 하고 프로토콜 요구 사항에 따라 웹 사이트를 크롤링 할 수 있어야합니다 . Robots크롤러 작동에 대한 동의는 권장 사항 일뿐 , 동의를 따르지 않고 웹 사이트를 크롤링하는 데 법적 위험이 없음을 의미하지는 않습니다. 특히 상업적 가치가있는 콘텐츠의 경우 크롤러를 사용하여 혜택을 얻기 위해 불법적으로 크롤링하면 고소 될 위험이 있습니다.
  원칙적으로 모든 웹 크롤러는 Robots프로토콜 사양을 따라야 합니다. 웹 크롤러가 방문 횟수가 많거나 상업적인 이익을위한 Robots경우 계약을 준수해야 하지만 개인 비영리 목적으로 만 웹 크롤러를 방문 하고 웹 사이트 방문 횟수가 적은 경우 계약의 구속력을 적절하게 줄일 수 있습니다. 웹 사이트에 대한 크롤러의 액세스 (빈도 및 크롤링 된 콘텐츠)가 사용자의 액세스 패턴과 동일한 경우 이러한 유형의 행동을 인간과 유사한 행동이라고하며 이러한 유형의 행동은 Robots계약을 준수하지 않습니다 .

추천

출처blog.csdn.net/Zheng__Huang/article/details/108583115