Python 크롤러를 식별하는 방법

silencement
풀어 주다: 2020-09-19 15:38:39
원래의
5104명이 탐색했습니다.

Python 크롤러를 식별하는 방법

1. 인증코드 입력

이런 인증코드는 주로 사용자가 사진 속 문자, 숫자, 한자 등을 입력하여 인증하는 방식입니다. 아래와 같이

Python 크롤러를 식별하는 방법


해결책: 이것이 가장 간단한 방법입니다. 안에 있는 내용을 식별하고 입력 상자에 채우면 됩니다. 이 인식 기술을 OCR이라고 합니다. 여기서는 Python의 타사 라이브러리인 tsserocr을 사용하는 것이 좋습니다. 배경 영향이 없는 인증 코드의 경우 그림 2와 같이 이 라이브러리를 통해 직접 식별할 수 있습니다. 그러나 배경이 시끄러운 인증 코드의 경우 직접 인식률이 매우 낮습니다. 이런 상황이 발생하면 먼저 이미지를 처리하고 이미지를 먼저 그레이스케일한 다음 이진화한 다음 인식해야 합니다. 인식률이 대폭 향상됩니다.

2. 슬라이딩 인증코드

Python 크롤러를 식별하는 방법

해결방법: 이런 종류의 인증코드는 좀 더 복잡하지만 그에 상응하는 방법이 있습니다. 우리가 직접적으로 생각하는 것은 사람이 인증코드를 드래그하는 행동을 시뮬레이션하고 버튼을 클릭한 후 공백 위치를 확인하고 마지막으로 퍼즐을 공백 위치로 드래그하여 검증을 완료하는 것입니다.

1단계: 버튼을 클릭하세요. 그러다가 버튼을 클릭하지 않았을 때는 공백과 퍼즐이 나타나지 않고, 클릭한 후에 나타나는 것을 발견했습니다. 이는 공백의 위치를 ​​찾는 데 영감을 주었습니다.

2단계: 간격 위치로 드래그합니다. 퍼즐을 틈새까지 끌어야 한다는 것은 알지만, 이 거리를 수치로 표현한다면? 첫 번째 단계에서 관찰한 현상을 통해 틈의 위치를 ​​알 수 있습니다. 여기에서 두 사진의 픽셀을 비교하고 벤치마크 값을 설정할 수 있습니다. 특정 위치의 차이가 벤치마크 값을 초과하면 두 사진의 다른 위치를 찾은 것입니다. 물론 오른쪽부터 시작합니다. 퍼즐의 측면에서 시작하여 왼쪽에서 오른쪽으로 이동하고 첫 번째 다른 위치를 찾으면 끝납니다. 이 위치는 간격의 왼쪽에 있어야 하므로 셀레늄을 사용하여 이 위치로 드래그할 수 있습니다. 여기서 또 다른 질문은 이 두 사진을 자동으로 저장하는 방법입니다. 여기서 먼저 레이블을 찾은 다음 해당 위치와 크기를 가져온 다음 위쪽, 아래쪽, 왼쪽, 오른쪽 = 위치['y'], 위치['y']+크기['높이']+ 위치['x ' ] + size['width'] 를 누른 다음 스크린샷을 찍고 마지막으로 이미지를 잘라내고 이 네 위치를 채웁니다. 특정 사용법에 대해서는 버튼을 클릭하기 전에 그림을 잘라낸 다음 버튼을 클릭한 후 그림을 잘라내는 셀레늄 문서를 볼 수 있습니다. 마지막으로 드래그할 때는 먼저 가속한 다음 감속하는 인간 행동을 시뮬레이션해야 합니다. 이러한 인증코드는 행위특성 검출 기능이 있기 때문에 사람이 일정한 속도를 유지하는 것이 불가능하며, 그렇지 않으면 기계 끌기로 판단되어 인증을 통과하지 못하게 됩니다.

관련 학습 권장 사항: python 튜토리얼

위 내용은 Python 크롤러를 식별하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿