저는 파이썬을 배우고 있으며 현재 reddit을 긁어 모으고 있습니다. 어떻게 든 reddit은 내가 (사실상 내 소프트웨어 인) 봇이라는 것을 알아 냈지만 어떻게 알 수 있을까요? 그리고 우리가 우리가 일반 사용자라고 생각하도록 속이는 방법.웹 사이트는 어떻게 봇을 탐지합니까?
실용적인 해결책을 찾았지만 심층적 인 이론적 이해가 필요합니다.
저는 파이썬을 배우고 있으며 현재 reddit을 긁어 모으고 있습니다. 어떻게 든 reddit은 내가 (사실상 내 소프트웨어 인) 봇이라는 것을 알아 냈지만 어떻게 알 수 있을까요? 그리고 우리가 우리가 일반 사용자라고 생각하도록 속이는 방법.웹 사이트는 어떻게 봇을 탐지합니까?
실용적인 해결책을 찾았지만 심층적 인 이론적 이해가 필요합니다.
인터넷 서비스 제공 업체가 봇 및 스크래퍼를 감지하고 대처할 때 사용하는 다양한 기술이 있습니다. 이들 모두의 핵심은 비인간적 인 행동을 식별 할 수있는 휴리스틱 및 통계 모델을 구축하는 것입니다. 같은 것들 : 예를 들어, 특정 시간 프레임 당 특정 IP에서 요청의
총 수는, 무엇보다 50 명 초당 요청, 분당 (500), 또는 하루에 5000 것처럼 보일 수 있습니다 의심 또는 악의적 . 단위 시간당 IP 당 요청 수를 계산하는 것은 매우 일반적이며 틀림없이 효과적입니다.
들어오는 요청 속도의 규칙, 예를 들어 초당 10 요청의 지속되는 흐름은 요청을하거나 조금 기다린 후 다음 요청을하도록 프로그래밍 된 로봇처럼 보일 수 있습니다.
HTTP 헤더. 브라우저는 각 요청에 대해 예측 가능한 User-Agent
헤더를 보내 서버가 공급 업체, 버전 및 기타 정보를 식별하는 데 도움을줍니다. 다른 헤더와 결합하여, 서버는 요청이 알려지지 않은 또는 다른 방식의 소스로부터 왔음을 알 수 있습니다.
인증 토큰, 쿠키, 암호화 키 및 이후의 요청을 특수한 방식으로 작성하고 제출해야하는 임시 정보 조합입니다. 예를 들어, 서버는 특정 키 (쿠키, 헤더, 응답 본문 등)를 보내고 브라우저가 서버에 요청한 후속 요청에 해당 키를 포함하거나 사용하도록합니다. 너무 많은 요청이 해당 조건을 충족시키지 못하면 봇에서 나올 수있는 표지입니다.
마우스 및 키보드 추적 기술 : 사용자가 특정 버튼을 클릭 할 때만 특정 API를 호출 할 수 있다는 것을 서버에서 알고있는 경우 프런트 엔드 코드를 작성하여 적절한 마우스 활동이 감지되도록 할 수 있습니다 (예 : 사용자가 API 요청을하기 전에 실제로 버튼을 클릭).
그리고 더욱 많은 기술. 당신이 봇 활동을 탐지하고 차단하려는 사람이라고 상상해보십시오. 사용자가 요청한 것을 확인하기 위해 어떤 접근 방식을 취할 것입니까? 봇의 행동과 반대로 인간의 행동을 어떻게 정의하겠습니까? 그리고 두 가지를 구분하기 위해 어떤 메트릭스를 사용할 수 있습니까?
실용성 문제도 있습니다. 일부 접근법은 구현하기가 더 비싸고 어렵습니다. 그렇다면 문제는 어느 정도 (얼마나 안정적으로) 봇 활동을 탐지하고 차단해야합니까? 사용자 계정을 해킹하려는 봇과 싸우고 있습니까? 또는 공개적으로 볼 수있는 웹 페이지의 일부 데이터를 스크랩하지 못하도록 막기 만하면됩니까? 위양성 및 위양성 검출의 경우 어떻게합니까? 이러한 질문은 봇 활동을 식별하고 차단하기 위해 취할 수있는 접근 방식의 복잡성과 독창성을 알려줍니다.
동의 함. 1. 나는 일정 기간 동안 미래의 요청을 막기 위해 훨씬 낮은 수준의 반복 요청을 보았다. OI는 나의 개인 독서를 위해 만화 사이트를 하루에 한 번 긁었다. 소프트웨어를 업데이트하고 몇 분 안에 약 10 건의 요청을해야 할 때 차단되었습니다. 2.'User-Agent'가 현재 브라우저와 일치하도록 만드십시오. 자동 전화 로그인을 위해 우리 사이트를 긁어 모으는 문제가있었습니다. 3. 권한이 없으면하지 마십시오. – zaph
CAPTCHA 인성 검사 이외에 웹 사이트에서 귀하가 봇인지 여부를 판단 할 수 있다고 생각하지 않습니다. 파이썬 코드를 사용하면 헤더를 채워서 웹을 생각할 수 있습니다.eaxmple를 들어 : 'REQ = 요청 (URL)' 'req.add_header ('사용자 에이전트', '모질라/5.0') ' 그리고 마지막 한가지, 그들은 통계를 사용하고 당신의 행동을 분석 할 수 있습니다. – oBit91