Programming/Python

파이썬 크롤링 에러 - Connection aborted.', RemoteDisconnected('Remote end closed connection without response

remake 2023. 10. 19. 09:52

 

파이썬에서 크롤링을 하다보면 아래와 같은 에러를 만나게 되는데요.

 

Connection aborted.', RemoteDisconnected('Remote end closed connection without response

이 에러는 실제로 헤더값을 추가하면 해결할 수 있는데요.

 

에러코드 상세 내역

 

    req = requests.get(videourl)
  File "C:\python\Lib\site-packages\requests\api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "C:\python\Lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\python\Lib\site-packages\requests\sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\python\Lib\site-packages\requests\sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "C:\python\Lib\site-packages\requests\adapters.py", line 547, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

 

실제 코드는 아래처럼 헤더를 추가해주면 해결이 됩니다.

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"}
req = requests.get(videourl, headers=headers)

기본적으로 http 헤더는 클라이언트와 서버가 통신할 때 함께 전달하는 부가 정보로 날짜, 인코딩 정보, 유저 정보 등 다양한 내용을 담고 있습니다. 그래서 해당 사이트에서 봇의 접속을 막는경우 헤더가 없으면 접속이 불가능합니다.
 
그래서 위의 코드를 통해 User-Agent 부분을 설정해 주는 것입니다. User-Agent에는 운영체제, 소프트웨어 버전, 소프트웨어 유형 등 여러 내용이 포함되어 있어, 봇이 아닌 사람이 직접 접속한 것처럼 속이게 되는 것입니다.

그럼 잘 사용하시기 바랍니다.