인코딩 실습
웹사이트 크롤링 시, 가끔 인코딩 오류가 발생한다. 이는 웹사이트의 인코딩 형식을 강제 지정함으로서 해결할 수 있다.
import requests
import lxml.html
대한민국 법원 홈페이지를 긁어온다.
res = requests.get('https://www.scourt.go.kr/scourt/index.html')
res.encoding
: 웹사이트의 인코딩 형식을 확인할 수 있다.
res.encoding
'ISO-8859-1'
서유럽어를 표현하는 ISO-8859-1
로 인코딩이 잘못 인식되었다.
문제를 확인하기 위하여 웹페이지의 제목을 추출해본다.
root = lxml.html.fromstring(res.text)
for e in root.cssselect('title'):
print(e.text_content())
´ëÇѹα¹ ¹ý¿ø
'대한민국 법원' 대신 이상하게 깨진 글자들이 표시된다. 인코딩을 잘못 인식했기 때문이다.
수동으로 인코딩을 지정해야 하는데, 한글을 표시하는 인코딩은 cp949
아니면 utf8
둘 중에 하나이다. 하나씩 시도해본다.
먼저 인코딩을 cp949
로 변경한다.
res.encoding = 'cp949'
다시 웹페이지 제목을 추출하면 잘 출력된다.
root = lxml.html.fromstring(res.text)
for e in root.cssselect('title'):
print(e.text_content())
대한민국 법원