• Home
  • About
    • changsoooooo's Blog photo

      changsoooooo's Blog

      changsoooooo's Blog.

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • 일상
  • 교육
    • 교육학
    • 정보 컴퓨터 교육
    • 임용
  • 개발
  • 잡지식
  • 한국사
  • Projects

크롤링시 한글깨짐

09 Nov 2020

Reading time ~1 minute

크롤링시 한글깨짐

소프트웨어학과 홈페이지를 크롤링해보려고 했는데 페이지 소스를 읽는 과정에서 한글이 외계어로 나오는

<!--------------------- ÆË¾÷ ½ÃÀÛ ---------------------->
<!--------------------- ÆË¾÷ ³¡ --------------------->
<div id="errorMessage" style="display:none;position:absolute;"></div>
</body>
</html>

이런식의 오류가 나왔다. 그래서 인터넷을 찾아보니

  1. 어떤 인코딩인지 확인하기
>>> resp = requests.get('http://naver.com') # 네이버 홈
>>> resp.encoding
'UTF-8'
>>> resp = requests.get('http://finance.naver.com') # 증권
>>> resp.encoding
'ISO-8859-1'

유니코드 인코딩 - UTF-8

한글 인코딩 - EUC-KR

영문 인코딩 - ISO-8859-1

소프트웨어학과 같은경우 영문 인코딩 ISO-8859-1이였다.

  1. 인코딩 변환해주기

객체.encoding을 이용하여 euc-kr로 바꿔주면 된다.

import requests
 
resp = requests.get('http://finance.naver.com/')
resp.raise_for_status()
 
resp.encoding=None   # None 으로 설정
#resp.encoding='euc-kr'  # 한글 인코딩
 
html = resp.text
print(html)
<!--------------------- 팝업 시작 ---------------------->
<!--------------------- 팝업 끝 --------------------->
<div id="errorMessage" style="display:none;position:absolute;"></div>
</body>
</html>

해결



Share Tweet +1