속도 제한을 우회하는 방법 .. Python을 사용하는 HTML 오류 1015

Dec 03 2020

그래서 나는 인터넷에서 나를 위해 몇 가지 작업을 수행하기 위해 자동화 봇을 만들었습니다 .. Selenium Python을 사용합니다 .. 길고 끔찍한 코딩 세션 ..이 프로젝트에서 작업하는 낮과 밤 끝에 마침내 완료했습니다 ... 무작위로 오류 1015 "당신은 속도가 제한됩니다."

나는 이것이 DDOS 공격을 방지하기위한 것임을 이해합니다. 그러나 그것은 큰 타격입니다.

문제를 해결하기 위해 웹 사이트에 연락했지만 아무 소용이 없습니다. 그러나 그들이 사용하는 제 3 자 보안 소프트웨어는 웹 사이트가 속도 제한에서 내 IP 제외를 허용 할 수 있다고 말합니다.

그래서 나는 이것을 우회 할 수있는 다른 방법이 있는지 궁금했다. 아마도 코딩 관점에서 볼 때 ... 나는 쿠키를 지우는 것과 같은 것이 아무것도 해결할 것이라고 생각하지 않는다. 또는 그들이 차단하고있는 내 특정 IP 주소이기 때문에 그것이 해결 될 것이라고 생각하지 않는다.

참고 : 내가 내 봇을 실행하고있는 웹 사이트의 TofC는 자동화 소프트웨어를 사용할 수 없다고 말하지는 않지만 ..도 할 수 없다고 말하지 않습니다.

이 빌드의 마지막 단계는 내 프로그램을 매일 장시간 실행하는 것이기 때문에 24 시간 동안 지속될 수 있다고 생각하는 임의 액세스 거부를 방지하기 위해 더 많은 코딩을하는 것도 괜찮습니다.

제 3 자 보안과 통신하여 웹 사이트에 액세스 권한을 요청하도록 요청할 수 있다고 생각하십니까? .. 이미 웹 사이트를 통해 문제를 해결해 보았습니다. 그들이 말한 전부는 A였다. 거기에 나는 괜찮다고 말한다. B. 문제는 내 편일 가능성이 가장 높다. .. "어쩌면 어떤 악성 소프트웨어가 우리 웹 사이트에 접근하려고 할지도 모른다". .. 악의적은 아니지만 봇은 그렇다. 그래서 내가 직접 문제를 해결하는 것이 더 나을 것이라고 생각하게했습니다.

프로세스 사이에 대기 시간을 구현해야 할 수도 있다고 생각하십니까? 임 멈춰.

도움을 주셔서 감사합니다. 그리고 그것의 단일 봇!

답변

1 DebanjanB Dec 04 2020 at 07:08

무작위로 인사를 받으면 ...

... 사이트 소유자가 방문자 트래픽에 영향을 미치는 속도 제한 을 구현했음을 의미합니다 .


속도 제한 이유

Cloudflare 는 가능한 사전 공격 에 대응하려는 방문자 트래픽의 속도를 제한 할 수 있습니다 .


속도 제한 임계 값

일반적인 경우 Cloudflare 는 방문자 트래픽이로 계산 된 비율 제한 임계 값을 초과 할 때 방문자를 비율 제한하여 동일한 24 시간 동안 캐시되지 않은 웹 사이트 요청 24 시간을 고유 방문자로 나눈 값입니다. 그런 다음 예상 평균 방문 시간으로 나눕니다. 마지막으로 웹 사이트의 분당 예상 임계 값을 설정하려면 4 (또는 그 이상)를 곱하십시오. 4보다 큰 값은 대부분의 공격이 일반적인 트래픽 속도보다 훨씬 높기 때문에 괜찮습니다.


해결책

이러한 경우 잠재적 인 해결책은 undetected-chromedriver 를 사용 하여 Chrome Browsing Context 를 초기화하는 것 입니다.

undetected-chromedriver 는 최적화 된 Selenium Chromedriver 패치로, Distill Network / Imperva / DataDome / Botprotect.io와 같은 안티 봇 서비스를 트리거하지 않습니다. 드라이버 바이너리를 자동으로 다운로드하고 패치합니다.

  • 코드 블록 :

    import undetected_chromedriver as uc
    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = uc.Chrome(options=options)
    driver.get('https://bet365.com')
    

참고 문헌

다음에서 몇 가지 관련 세부 토론을 찾을 수 있습니다.

  • Heroku에서 호스팅 될 때 Selenium 앱이 Cloudflare 페이지로 리디렉션 됨
  • Linkedin API 스로틀 제한
1 hhz Dec 03 2020 at 22:26

여기에 몇 가지 가능성이 있습니다.

  • 사이트에 대한 요청 사이의 대기 시간 도입
  • 요청을 줄입니다.
  • 봇을 확장하여 제한에 도달하면 감지하고 IP 주소를 변경합니다 (예 : 라우터를 다시 시작).

마지막 것은 내가 생각하는 가장 바람직하지 않으며 가장 시간이 많이 걸리는 것입니다.

1 ex-zac-tly Dec 03 2020 at 22:30

첫째 : 웹 사이트의 이용 약관을 읽으십시오. 예를 들어 robots.txt를보십시오. 일반적으로 이것은 www.google.com/robots.txt 와 같은 웹 사이트의 루트에 있습니다. 웹 사이트 소유자의 명시적인 조건에 위배되는 것은 관할권에 따라 불법 일 수 있으며 소유자가 귀하의 도구 및 / 또는 IP를 차단할 수 있습니다.

https://www.robotstxt.org/robotstxt.html

이를 통해 웹 사이트 소유자가 자동화 및 스크래핑을 명시 적으로 허용하는 것을 알 수 있습니다.

웹 사이트의 약관을 검토하고 허용하는 내용을 이해하고 응답하지 않고 웹 사이트 이용 약관을 위반하지 않는다고 판단한 후, 유일한 다른 옵션은 프록시 및 / 또는 VPS를 활용하는 것입니다. 그러면 스크립트를 실행하는 시스템에 다른 IP가 제공됩니다.