인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김현택님의 프로필 이미지
김현택

작성한 질문수

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

requests 모듈 기초(2)

현재 예제에서 error 발생

작성

·

89

0

3-2-2.py 17line

r = s.get('https://jsonplaceholder.typicode.com/posts/1')

=> requests.exception.SSLError 발생

 

3-3.py 49line

r = requests.put('https://jsonplaceholder.typicode.com/posts/1', data=payload)

=> requests.exception.SSLError 발생

 

변경시

r = requests.put('https://jsonplaceholder.typicode.com/posts/1', data=payload, verify=False)

=> InsecureRequestWarning 발생 후

print(r.text) 결과: {}

답변 3

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

안녕하세요. 현택님.

지금 해당 주소로 확인해보니 response가 정확하게 오고 있습니다.

좀 더 확인해보고 말씀드릴께요!

소스코드만 문제가 없으면 서버측 문제이니 다음 예제로 넘어가셔도 될 것 같습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 김현택님. 웹 크롤링이나 API 요청을 하면서 SSL/TLS 인증서로 인해 requests.exception.SSLError가 발생할 수 있습니다. 이러한 오류는 requests 라이브러리가 서버의 인증서를 신뢰하지 못할 때 발생합니다.

문제의 원인 및 해결 방법

  1. SSL/TLS 인증서 문제:

    • 이 오류는 주로 서버의 SSL 인증서가 제대로 설정되지 않았거나, 로컬 환경에서 신뢰할 수 없는 인증서 때문입니다.
  2. verify=False로 설정:

    • verify=False 옵션을 사용하면 SSL 인증서를 검증하지 않게 되어 InsecureRequestWarning 경고가 나타날 수 있습니다. 이는 보안 상의 우려 때문에 권장되지 않는 방법입니다.

    • 해결 방법으로는 urllib3 패키지의 InsecureRequestWarning을 무시하는 코드가 있지만, 이는 안전하지 않은 해결책이 될 수 있습니다.

      import requests
      from requests.packages.urllib3.exceptions import InsecureRequestWarning
      # 불필요한 경고 메시지가 나타나지 않도록 설정
      requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
      
  3. 권장되는 방법:

    • 가능한 경우, 시스템의 CA 인증서 목록을 최신 상태로 업데이트하여 SSL 인증을 성공적으로 수행하도록 합니다.
    • 사내 네트워크 트래픽일 경우, IT 부서에 올바른 CA 인증서를 설치 요청할 수 있습니다.
  4. 빈 결과 문제:

    • print(r.text) 결과가 빈 객체 {}로 나타난다면, 요청에 문제가 있거나 서버가 적절한 응답을 제공하지 않는 상황일 수 있습니다. 요청 구조나 데이터가 API의 기대치에 맞는지 확인해야 합니다.

참고 URL

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

김현택님의 프로필 이미지
김현택
질문자

python ver 3.12, pycharm:2024.3

김현택님의 프로필 이미지
김현택

작성한 질문수

질문하기