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
반응형
'프로그래밍 > python' 카테고리의 다른 글
Python에서 MySQL 데이터베이스 연동하기 (0) | 2024.04.18 |
---|---|
파이썬 OpenCV를 사용하여 카메라 제어방법 (0) | 2024.04.16 |
파이썬 해싱 (Hashing)과 Base64 인코딩 활용 (0) | 2024.04.12 |
파이썬 사각형 그리기: Turtle 모듈 활용 (0) | 2024.04.11 |
파이썬으로 짝수와 홀수의 합계를 구하는 함수 만들기 (0) | 2024.04.10 |