본문 바로가기
프로그래밍/python

파이썬으로 HTML 소스파일 저장

by 마루의 일상 2024. 4. 15.
728x90
반응형

 

파이썬을 사용하여 HTML 소스 파일을 저장하는 간단한 프로그램을 만들어 보겠습니다.

import requests

def save_html_source(url, file_name):
    try:
        response = requests.get(url)
        if response.status_code == 200:
            response.encoding = 'utf-8'  # 인코딩 설정
            with open(file_name, 'w', encoding='utf-8') as f:
                f.write(response.text)
            print(f"HTML 소스가 '{file_name}'에 저장되었습니다.")
        else:
            print("오류: 요청이 실패하였습니다.")
    except Exception as e:
        print("오류 발생:", e)

if __name__ == "__main__":
    url = input("HTML 소스를 저장할 웹 페이지의 URL을 입력하세요: ")
    file_name = input("저장할 파일명을 입력하세요 (예: example.html): ")
    save_html_source(url, file_name)

 

requests 라이브러리를 사용하여 주어진 URL에서 HTML 소스를 가져와서 파일로 저장하는 기능을 수행합니다.

URL과 파일명을 입력 받습니다.

 

response.encoding 설정: requests 모듈은 response 객체의 encoding 속성을 사용하여 인코딩을 설정합니다. 이 속성을 명시적으로 설정하여 한글이 깨지는 문제를 해결할 수 있습니다.

 

인코딩 감지: HTML 소스의 인코딩을 자동으로 감지하는 라이브러리를 사용하여 올바른 인코딩을 찾을 수 있습니다.

예를 들어, beautifulsoup4와 같은 라이브러리를 사용하여 HTML 소스의 인코딩을 확인할 수 있습니다.

beautifulsoup4로 캐릭터 셋 알아내는 방법에 대해 알아보겠습니다.

from bs4 import BeautifulSoup

# HTML 파일을 읽어와 BeautifulSoup 객체 생성
with open('example.html', 'r', encoding='utf-8') as f:
    html = f.read()

soup = BeautifulSoup(html, 'html.parser')

# <meta> 태그를 찾아 charset 속성 값 확인
meta_tag = soup.find('meta', charset=True)
if meta_tag:
    charset = meta_tag['charset']
    print(f"HTML 소스의 인코딩은 {charset}입니다.")
else:
    print("HTML 소스에서 인코딩을 확인할 수 없습니다.")
728x90
반응형