프로그래밍/Crawling

[Python] Connection aborted에러 : Header추가하기 (크롤링)

seojeon9 2022. 8. 3. 02:39

문제상황

크롤링을 하려 requests.get(url)을 하다가 아래 에러를 만나본적이 있을것이다.

('Connection aborted.', ConnectionResetError(10054, '현재 연결은 원격 호스트에 의해 강제로 끊겼습니다', None, 10054, None))

이 에러는 요청한 서버에서 나를 자동화봇으로 보고 연결을 끊는 상황이다.

해결방법

이때 bot이 아닌 정상적인 요청임을 증명해야한다.

크롤링하려는 페이지에서 개발자도구 > Network 에 들어가서 새로고침을 해보자.

이처럼 제일 처음에 들어온 패킷이 있을것이다.

 

해당 패킷을 눌러서 살펴보면 Request Headers 부분에 user-agent 속성에 Mozilla 어쩌구하는 값이 있을것이다.

이 값은 브라우저 정보를 나타내는 것인데 오른쪽 마우스해서 copy value를 하기 바란다.

 

headers = {"User-Agent" : "copy해온 값"}
res = requests.get(url,headers=headers)

headers를 만들고 url에 headers를 추가하여 요청하면 끝이다.

 


심화과정

이 부분에 관하여 최근에 새로운 포스팅을 했습니다.

UserAgent에 대해 더 이해하고 Python 라이브러리를 활용하여 해당 문제를 해결해보고 싶으신 분은 아래의 글을 참고해주세요 :)

 

[Python] 페이지 요청 보낼 때 가상의 유저 만들기 - fake_useragent

크롤러를 개발하다 보면 가장 중요한 부분은 불법 요청자로 판별되어 차단을 당하지 않는 것이다. 해당 웹 서버에 부담이 되는 많은 요청은 지양을 하는 것이 좋지만, 비즈니스를 위해 필요할

seojeong-99.tistory.com

 

728x90