본문 바로가기
[업무 지식]/Crawling

[문자 코드 다루기] 인코딩 방식을 추출하고 디코딩하기

by 에디터 윤슬 2024. 12. 31.
import sys
import ssl
from urllib.request import urlopen

ssl._create_default_https_context = ssl._create_unverified_context
f = urlopen('https://www.hanbit.co.kr/store/books/full_book_list.html')


# HTTP 헤더를 기반으로 인코딩 방식을 추출합니다(명시돼 있지 않을 경우 utf-8을 사용하게 합니다).
encoding = f.info().get_content_charset(failobj="utf-8")
# 인코딩 방식을 표준 오류에 출력합니다.
print('encoding:', encoding, file=sys.stderr)

# 추출한 인코딩 방식으로 디코딩합니다.
text = f.read().decode(encoding)
# 웹 페이지의 내용을 표준 출력에 출력합니다.
print(text)

 

# HTML 파일로 저장

output_file = 'dp.html'
with open(output_file, 'w', encoding='utf-8') as file:
    file.write(text)

print(f'HTML 파일이 "{output_file}"로 저장되었습니다')