반응형
질문
웹사이트를 크롤링하려고 하는데 오류가 발생합니다.
다음과 같은 코드를 사용하고 있습니다:
import urllib.request
from bs4 import BeautifulSoup
get = urllib.request.urlopen("https://www.website.com/")
html = get.read()
soup = BeautifulSoup(html)
그리고 다음과 같은 오류가 발생합니다:
File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 70924-70950: character maps to <undefined>
이를 해결하기 위해 어떻게 할 수 있을까요?
답변
저는 웹 컨텐츠를 파일에 저장할 때 동일한 UnicodeEncodeError
를 받았습니다. 이를 해결하기 위해 다음 코드를 대체했습니다:
with open(fname, "w") as f:
f.write(html)
다음과 같이 변경했습니다:
with open(fname, "w", encoding="utf-8") as f:
f.write(html)
만약 Python 2를 지원해야 한다면, 다음을 사용하세요:
import io
with io.open(fname, "w", encoding="utf-8") as f:
f.write(html)
만약 UTF-8이 아닌 다른 인코딩을 사용하려면, 실제 인코딩을 encoding
에 지정하세요.
반응형
댓글