커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4-12 cp949 에러
undefined주차
북마크
류*영
댓글
1
추천
0
조회수
9
조회수
9
답변 완료

내일배움단 강의 복습 중 질문 드립니다.


코드스니펫에서 붙여넣은 코드에서 print(soup) 코드 추가시

[Running] python -u "c:\Users\****\Desktop\sparta\projects\alonememo\meta_prac.py"
Traceback (most recent call last):
  File "c:\Users\****\Desktop\sparta\projects\alonememo\meta_prac.py", line 10, in <module>
    print(soup)
UnicodeEncodeError: 'cp949' codec can't encode character '\u6238' in position 6455: illegal multibyte sequence


이런 오류가 발생했는데요, 인코딩 문제인 것 같아 검색 후 해당 코드 위에

import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')


이 구문을 추가했더니 일단은 html 코드를 가져오는 것을 확인할 수 있었습니다.


앞으로 수업 진행 시 계속 위에 저 코드를 붙여 넣어도 괜찮은지, 아니면 다른 해결 방법이 있는지 궁금합니다.

(참고로 사용자 이름은 가렸으나 영어로만 이루어져 있습니다.)


에러가 난 코드

import requests
from bs4 import BeautifulSoup


URL = 'https://movie.daum.net/moviedb/main?movieId=161806'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL,headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

# 여기에 코딩을 해서 meta tag를 먼저 가져와보겠습니다.
print(soup)


수정 후 코드

import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')


import requests
from bs4 import BeautifulSoup

URL = 'https://movie.daum.net/moviedb/main?movieId=161806'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL,headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

# 여기에 코딩을 해서 meta tag를 먼저 가져와보겠습니다.
print(soup)



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴