[Python] 웹 스크래핑 : requests.exceptions.ConnectionError

2023. 11. 2. 12:13·Project/Personal & Toy
728x90

 

requests.exceptions.ConnectionError 발생 

 

웹 스크래핑 프로젝트에서 헤드라인 뉴스를 가져오는 도중, requests.exceptions.ConnectionError 가 발생하였다.

requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

 

처음 보는 에러를 보고, 항상 생각하는 것은 영어 좀 해둘걸 이다. 

그래도 어느 정도 알고 있던 지식을 기반으로 해석을 해보니(물론 우리에겐 파파고가 있지만) 

요청 연결에서 에러가 발생했다는 의미 같았다.

Connection aborted. 

연결이 중단되었다는 뜻으로, Remote(원격)과의 연결이 중단되었다는 뜻으로 해석을 했다.

그래서 이 프로젝트를 진행하기 전 user agent라는 것에 대해 배웠는데 이것을 통해서 해결하면 될 것 같았다. 

 

간단하게 user agent 에 대해서 설명하자면, 

HTTP 요청을 보내는 디바이스와 브라우저 등 사용자 소프트웨어의 식별정보를 담고 있는 request header의 한 종류로

우리의 user agent 를 고정값으로 넘겨주게 되면 같은 사용자로 인식하여 차단하지 않는다. 

 

정리하자면, 

에러 원인

해당 웹사이트를 계속 요청해서, 원격으로 반복적인 요청을 차단함으로써 발생한 에러. 

 

문제 해결 방법

원격의 차단을 막기 위해 user agent 값을 url 값 넘길 때, 헤더로 같이 넘기면 된다.

 

 

그래서 어떻게 user agent 값을 알 수 있는가? 

 

What is my user agent?

Every request your web browser makes includes your User Agent; find out what your browser is sending and what this identifies your system as.

www.whatismybrowser.com

위 페이지 링크에 들어가면 

https://www.whatismybrowser.com/detect/what-is-my-user-agent/

해당 사진과 같은 부분이 본인의 user agent 값이다. 

 

그래서 나는 아래와 같이 코드 작성을 해서 해결할 수 있었다. 

# 이처럼 user_agent 값을 변수명에 담아준 뒤
headers = {"User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"}

# url 을 넘길 때 headers 값으로 위의 변수명인 headers 를 넘기면 해결된다. 
res = requests.get(url, headers=headers)

이제야 에러가 안 나고 잘 불러와지는 것을 확인할 수 있었다. 

출처 - Is낫널

 

이제 카카오톡으로 해당 데이터들을 전송하는 방법을 공부해보려 한다.

(내적 기쁨) 

728x90

'Project > Personal & Toy' 카테고리의 다른 글

[AWS Lambda] EventBridge 스케줄러를 활용한 카카오톡 API 메세지 전송  (0) 2023.11.14
[AWS Lambda] HTTP 403 Error : url forbidden 문제 해결  (1) 2023.11.14
[Python] 웹 스크래핑 : 같은 태그명의 정보를 가져오는 방법  (0) 2023.11.02
'Project/Personal & Toy' 카테고리의 다른 글
  • [AWS Lambda] EventBridge 스케줄러를 활용한 카카오톡 API 메세지 전송
  • [AWS Lambda] HTTP 403 Error : url forbidden 문제 해결
  • [Python] 웹 스크래핑 : 같은 태그명의 정보를 가져오는 방법
is낫널
is낫널
  • is낫널
    아직은 NULL NULL 합니다
    is낫널
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • Computer Science (12)
        • 운영체제 (3)
        • Java (4)
        • Spring (0)
        • 네트워크 (2)
        • 자료구조 및 알고리즘 (0)
        • 데이터베이스 (1)
      • Algorithm (10)
        • BOJ & SWEA (8)
        • Programmers (0)
        • 이론 (2)
      • Project (7)
        • Team (3)
        • Personal & Toy (4)
      • 사회인 준비생 (22)
        • SSAFY (5)
        • 이직 (1)
        • TIL (14)
      • 무작정 따라해보기 (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 태그
    • 방명록
    • 블로그 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    그림자 문제
    개발
    딩코딩코
    sw적성진단
    백엔드 면접지식
    14510 나무 높이
    AWS
    코딩테스트
    문자열
    LAMBDA
    빈 라인
    파이썬
    CS지식
    BOJ
    Roy Fielding
    알고리즘
    비전공자
    CPU의 구성요소
    it세계의 괴물들
    HTTP
    backend
    개발공부
    개발자
    백엔드
    인터럽트핸들러
    자바
    백준
    카카오톡API
    transiant
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
is낫널
[Python] 웹 스크래핑 : requests.exceptions.ConnectionError
상단으로

티스토리툴바