본문 바로가기
Programming

urllib.error.HTTPError: HTTP Error 429: Too Many Requests HTTP 429 에러 해결하는 방법

by 하하호호 2022. 1. 28.
반응형

 

How to solve HTTP 429 status code?

 

 

서버에 CRONTAB을 걸어놓은 코드가 있었다.

주기적으로 특정 사이트의 내용을 크롤링 하는 코드를

추가했는데, 작동이 안되서 로그를 확인해보니 

HTTP 429 RESPONSE를 받았던 것이다. 

 

 

 

 

HTTP 429 Error는 기본적으로 Error가 아니다.

크롤링 하려고 하는 해당 측 서버에서 친절하게 나의

크롤링 코드에 대해서 친절하게 응답을 해주는 것이다.

"당신의 코드가 너무 짧은 시간에 많은 요청을 하고 있으니

자제를 해달라" 머 이런 식이다.

 

HTTP 429 Error 코드를 해결하는 유일한 방법은

해당측 서버의 요청대로 요청을 천천히 하는 방법이

유일하다. 그리고 이게 도덕적으로 맞는 이야기다.

 

그럼 얼마만큼 더 기다려려서 request를 보내야 되나?

해당 서버에서 응답 메세지에 친절하게 얼마를더 기다려야 되고,

특정 시간안에 얼마만큼의 request로 제한이 되어 있다고

안내를 하고 있다.

 

만약 크롤링 코드가 완벽하게 구현되었고, 서버 사이드에서

정상적으로 설정이 완료 되었으면, 해당 서버에서 HTTP429

응답코드를 보낼 때 헤더에 얼마만큼 더 기다려달라라는 

코드를 태워서 보내게 된다.

 

서버에 응답을 요청하는 클라이언트의 입장에서

서버의 응답을 최대한 맞춰서 몇초를 더 기다려서

요청을 하거나, 아니면 한 시간에 정해진 request만

보내는게 정석이다.

 

HTTP status code 정리

 

RFC 6585: Additional HTTP Status Codes

 

www.rfc-editor.org

 

 

 

 

 

Django Web Application robots.tst 생성&적용 방법

Django web application sitemap 생성 & 적용 방법 how to create sitemap on web application? SEO 기본 / 웹사이트 노출 포털사이트에 SITEMAP 등록이 필수다 구글 서치콘솔에 웹 애플리케이션을 등록하면, 주..

incomeplus.tistory.com

 

 

Django Web application Timezone setting

how to change timezone in Django framework? Django Timezone 셋팅 방법 Django로 만든 웹 애플리케이션에서 timezone 셋팅하는 방법은 Django setting을 아예 수정해야 한다. python3에서 제공하는 pytz 모듈..

incomeplus.tistory.com

 

 

AWS server CRONTAB cache 삭제 / ubuntu linux root 계정 권한 얻는 방법

How to delete remove clear cache memory on AWS ubuntu server ? AWS 서버에서 CACHE Memory 관리하기 AWS 서버에서 캐시를 주기적으로 삭제해주지 않으면 서버가 킬 당하는 참사가 발생한다. 프리티어로 운영..

incomeplus.tistory.com

 

반응형

댓글