진행하던 크롤링 프로젝트가 있었는데 갑자기 사이트 크롤링에 문제가 생겼다.
오류창으로
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를 바꿔서 기본파이썬 으로 돌려서 확인해보는것도 추천한다.
'개발 이슈,해결법' 카테고리의 다른 글
[mysql] mysql 에서 password 컬럼을 찾을 수 없을 (0) | 2021.10.22 |
---|---|
PyQt5 QComboBox 예제 (행정구역 선택에 따른 하위 행정구역 선택) (0) | 2021.07.30 |
알바 검색기 ver.1.0 개발후기 및 소개 (2) | 2021.07.29 |
AttributeError: Module 'PyQt5' has no attribute '__version__' (0) | 2021.07.19 |
anaconda prompt에서 pyqt5 실행하기 (0) | 2021.07.01 |