파이썬 utf-8 문제.. 도와주세요
파이썬3을 쓰고 있습니다.
웹페이지를 긁어오려고 하는데 뭐 어찌됐든 잘 되긴 하는데요
문제는 일부 사이트에서 에러가 납니다.
소스는 아래와 같은데요
import urllib.request
import http.cookiejar
import requests
url = "http://www.블라블라.com
cj = http.cookiejar.LWPCookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
urllib.request.install_opener(opener)
req = urllib.request.Request(url)
....
req.add_header("Referer", "http://www.블라블라.co.kr")
res = opener.open(req)
data = str(res.read(), "utf8") //<== 요기서 똭! 에러가 납니다.
에러내용은
Traceback (most recent call last):
File "hello.py", line 34, in
data = str(res.read(), "utf8")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 14864: inva
lid start byte
이렇습니다.
검색을 해보니 utf-8로 된 사이트임에도 불구하고 utf-8이 아닌 문자가 있어서 그렇다는 말이 있던데요
무시하고 넘어가려고
data = str(res.read(), "utf8", "ignore")
요렇게 ignore 를 주면
Traceback (most recent call last):
File "hello.py", line 40, in
print(data)
UnicodeEncodeError: 'cp949' codec can't encode character '\u06fc' in position 13
837: illegal multibyte sequence
요런 에러가 또 똭~ 펼쳐지네요.
분명히 사이트는 utf-8인데 cp949어쩌고... -_-;;
어떻게 해결해야 하나요? 도움좀 주세요
자문자답
어휴... ignore 는 잘 되는거였네요
저장하기 위한 파일을 열때 엔코딩을 지정해줘야 하는거였네요
f = open("aaa.txt", encoding="utf-8", mode="w")
요렇게요..
이 간단한걸 하루 밤새우고 이제서야 알게됐습니다 ㅜㅜ
댓글 달기