>  기사  >  웹 프론트엔드  >  크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

coldplay.xixi
coldplay.xixi원래의
2020-08-25 16:50:312940검색

 크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

【관련 학습 추천: 웹사이트 제작 동영상 튜토리얼

크롤러란 간단하게 일방적으로 말하면 서버와 자동으로 상호 작용하여 작업을 수행하는 도구입니다. 데이터를 얻습니다. 크롤러에 대한 가장 기본적인 것은 웹페이지의 소스 코드 데이터를 얻는 것입니다. 더 깊이 들어가면 웹페이지와 POST 상호 작용을 하고 POST 요청을 받은 후 서버에서 반환되는 데이터를 가져옵니다. 한마디로, 크롤러는 자동으로 원본 데이터를 얻는 데 사용됩니다. 추가 데이터 처리 등에 대해서는 이 기사에서는 주로 크롤러가 데이터를 얻는 부분에 대해 이야기하고 싶습니다. 크롤러 여러분은 웹사이트의 Robot.txt 파일에 주의하시기 바랍니다. 크롤러가 법을 위반하거나 웹사이트에 해를 끼치는 일이 없도록 하십시오.

 크롤링 방지 및 크롤링 방지 개념의 부적절한 예

  여러 가지 이유(예: 서버 리소스, 데이터 보호 등)로 인해 많은 웹사이트에서 크롤러 효과를 제한합니다.

생각해 보세요. 인간이 크롤러 역할을 한다면 웹 페이지의 소스 코드를 어떻게 얻을 수 있을까요? 가장 일반적으로 사용되는 방법은 소스 코드를 마우스 오른쪽 버튼으로 클릭하는 것입니다.

 사이트에서 오른쪽 클릭이 차단되는데 어떻게 해야 하나요?

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

 우리 크롤러에서 가장 유용한 도구인 F12를 꺼냅니다(토론 환영)

 F12를 동시에 누르면 열립니다(웃긴)

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

 소스 코드 나왔어요!!

사람을 크롤러로 취급할 때 오른쪽 클릭을 차단하는 것이 크롤링 방지 전략이고, F12가 크롤링 방지 방법입니다.

  공식적인 크롤링 방지 전략에 대해 이야기해 보겠습니다.

실제로 크롤러를 작성하는 과정에서 데이터가 반환되지 않는 상황이 있었을 것입니다. 이 경우 서버가 UA 헤더(사용자)를 제한했을 수 있습니다. -agent)입니다. 아주 기본적인 크롤링 방지 방법으로, 요청을 보낼 때 UA 헤더만 추가하면 됩니다... 아주 간단하지 않나요?

 사실 필수 사항을 모두 추가하는 것은 간단하고 투박한 방법입니다. 헤더를 한 번에 요청하세요...

웹사이트의 인증 코드도 크롤링 방지 전략이라는 사실을 발견한 적이 있나요? 웹사이트 사용자가 실제 사람이 될 수 있도록 인증 코드가 정말 큰 기여를 했습니다. 인증코드와 함께 인증코드 인식도 등장했습니다.

  그러고 보니 인증코드 인식이 먼저인지, 이미지 인식이 먼저인지 궁금합니다.

  이제 간단한 인증코드는 인식하기가 매우 간단해졌습니다. , 세분화 및 재구성. 하지만 이제 웹사이트 인간-기계 인식은 다음과 같이 점점 더 무서워졌습니다.

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

노이즈 제거 이진법의 개념을 간략하게 설명합니다.

이진값, 즉 이미지 자체를 두 가지 톤으로만 변경하는 예는 다음과 같습니다. 매우 간단합니다. Python PIL 라이브러리의

 Image.convert("1")크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

 를 통해 얻을 수 있지만, 이미지가 더 복잡해지면 더 생각해 봐야 합니다. 예를 들어

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

직접 간단한 방법을 사용하면

이 됩니다. 이 인증코드를 어떻게 식별할지 고민해 보세요. 이때, 노이즈 제거는 인증에 따라 유용하게 사용됩니다. 코드 자체의 특성으로 배경색을 계산할 수 있습니다. 인증코드와 글꼴 등을 제외한 RGB 값을 색상으로 변환하고, 글꼴은 생략합니다. 샘플 코드는 다음과 같습니다. 색상만 변경하면 됩니다.

  for x in range(0,image.size[0]):
  for y in range(0,image.size[1]):
  # print arr2[x][y]
  if arr[x][y].tolist()==底色:
  arr[x][y]=0
  elif arr[x][y].tolist()[0] in range(200,256) and arr[x][y].tolist()[1] in range(200,256) and arr[x][y].tolist()[2] in range(200,256):
  arr[x][y]=0
  elif arr[x][y].tolist()==[0,0,0]:
  arr[x][y]=0
  else:
  arr[x][y]=255

Arr은 numpy로 얻은 이미지의 RGB 값에서 파생된 행렬입니다. 독자가 직접 코드를 개선하고 실험해 볼 수 있습니다.

 주의 깊게 처리한 후에 사진이

인식률은 여전히 ​​매우 높습니다.

 인증 코드 개발에는 비교적 명확한 숫자와 문자, 간단한 덧셈, 뺄셈, 곱셈, 나눗셈이 있습니다. 일부 어려운 숫자, 문자 및 한자의 경우 바퀴를 직접 만들 수도 있습니다. (위와 같은) 하지만 더 많은 것은 인공 지능을 작성하는 것만으로도 충분합니다... (인증 코드를 인식하는 직업이 있습니다...)

 그리고 작은 팁: 일부 웹 사이트에는 인증 코드가 있습니다. PC 쪽에서는 있지만 휴대폰 쪽에서는 그렇지 않습니다...

 다음 주제!

  또 다른 일반적인 크롤링 방지 전략은 일반적으로 짧은 시간에 너무 많은 방문이 차단됩니다. 매우 간단합니다. 방문 빈도를 제한하거나 IP 프록시 풀을 추가하십시오. 물론 배포도 사용할 수 있습니다...

 IP 프록시 풀 -> Google로 왼쪽으로 우회하면 바이두로 갈 수 있습니다. . 무료로 사용할 수 있는 것은 많지 않지만, 결국은 괜찮습니다.

크롤러 방지 전략으로도 간주할 수 있는 또 다른 전략은 비동기 데이터입니다. 크롤러가 점차 심화됨에 따라(당연히 웹사이트의 업데이트입니다!) 비동기 로딩은 반드시 직면하게 될 문제이며, 해결책은 여전히 ​​F12입니다. 익명의 NetEase Cloud Music 웹사이트를 예로 들어보겠습니다. 소스 코드를 열기 위해 마우스 오른쪽 버튼을 클릭한 후 댓글을 검색해 보세요

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

JS와 Ajax가 등장한 이후의 비동기 로딩의 특징은 무엇입니까?! . 하지만 F12를 열고 NetWork 탭으로 전환한 다음 페이지를 새로 고치고 주의 깊게 검색하면 비밀이 없습니다.

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

아, 그런데 음악을 듣고 계시다면 클릭하시면 다운로드가 가능합니다...

크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의

웹사이트의 구조를 대중화하기 위한 것일 뿐입니다. 저작권을 보호하고 원작자의 이익을 보호합니다.

 이 웹사이트가 당신을 제한한다면 어떻게 해야 할까요? 우리에게는 무적의 조합인 셀레늄 + PhantomJs가 있습니다.

 이 조합은 매우 강력하며 브라우저 동작을 완벽하게 시뮬레이션할 수 있습니다. 특히 이 방법은 Baidu를 참조하세요. 이는 권장되지 않습니다. 이는 대중 과학에만 해당됩니다.

위 내용은 크롤러 및 웹사이트 크롤링 방지 메커니즘 우회에 대한 간략한 논의의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.