개발 이슈,해결법

Beautiful Soup을 사용한 사이트크롤링중 한글깨짐 문제

난쏘공돌이 2021. 7. 24. 02:04

진행하던 크롤링 프로젝트가 있었는데 갑자기 사이트 크롤링에 문제가 생겼다.

오류창으로 

UnicodeEncodeError: 'cp949' codec can't encode character '\xfa' in position 1: illegal multibyte sequence

를 만난것이다 .

 

잘되던 코드였기에 당황했고 디버깅을 진행하니 

요런 외계어문자가 나를 반겨줬다.

 

무엇이 문제인고 하니 soup객체에서 모든 한글문자가 저런 외계어로 출력되는 것이었다.

바로 구글링을 통해 문제를 찾아보았는데,

 

결론부터 말하면 

soup = BeautifulSoup(html, 'html.parser',from_encoding='cp949')

뒤의 옵션이 보이는가?

from_encoding = 'cp949'를 통해 해결하였다.

 

해결한 모습이다.

 

 

구글링중 많은 해결법을 찾았는데, 이 방법이 안먹힌다면 아래의 방법또한 시도해 보면 좋을 것 같다.


1. encoding 방식을 소스코드 상단에 입력

# -*- coding: utf-8 -*-

이걸 소스코드 상단에 입력해주는 방법이 있고.

 

2.

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

이걸 소스코드에 입력해 주는 방법이 있다.

 

 

 

부디 위에 설명한 3가지 방법으로 해결하기를 바란다....

그리고 IDE문제일 수도 있으니 기존 사용하는것이 파이참이나 VScode라면 IDE를 바꿔서 기본파이썬 으로 돌려서 확인해보는것도 추천한다.