정규 표현식으로 가격이 제대로 나오는지 확인하기
import re
value = '3,000'
# 숫자와 쉼표만을 포함한 정규 표현식에 매치하는지 확인합니다.
if not re.search(r'^[0-9,]+$', value):
# 값이 제대로 돼 있지 않다면 예외를 발생시킵니다.
raise ValueError('Invalid price')
Voluptuous로 유효성 검사하기
# pip install voluptuous
from voluptuous import Schema, Match
# 다음 4개의 규칙을 가진 스키마를 정의합니다
schema = Schema({ # 규칙1: 객체는 dict 자료형
'name': str, # 규칙2:name은 str(문자열) 자료형
'price': Match(r'^[0-9,]+$'), # 규칙3:price가 정규 표현식에 맞는지 확인
}, required=True) # 규칙4:dict의 키는 필수
# Schema 객체는 함수처럼 호출해서 사용합니다.
# 매개변수에 대상을 넣으면 유효성 검사를 수행합니다.
schema({
'name': '포도',
'price': '3,000',
}) # 유효성 검사를 통과하므로 아무 문제 없음
schema({
'name': None,
'price': '3,000',
}) # 유효성 검사를 통과하지 못 하므로, MultipleInvalid 예외가 발생
변화 통지하기
- .env 파일 생성 및 저장
EMAIL_ADDRESS=이메일 주소
EMAIL_PASSWORD=gmail 앱비밀번호(공백 없이)
- 메일 발송
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import os
from dotenv import load_dotenv
# .env 파일 로드
load_dotenv()
# 환경 변수 가져오기
email_address = os.getenv('EMAIL_ADDRESS')
email_password = os.getenv('EMAIL_PASSWORD')
# MIMEText 객체로 메일을 생성합니다.
msg = MIMEText('메일 본문입니다.')
# 제목에 한글이 포함될 경우 Header 객체를 사용합니다.
msg['Subject'] = Header('메일 제목입니다.', 'utf-8')
msg['From'] = email_address
msg['To'] = '보낼 메일 주소'
with smtplib.SMTP_SSL('smtp.gmail.com') as smtp:
# 구글 계정의 사용자 이름과 비밀번호를 지정해서 로그인합니다.
# 2단계 인증을 설정한 경우 애플리케이션 비밀번호를 사용해 주세요.
smtp.login(email_address, email_password)
# send_message() 메서드로 메일을 전송합니다.
smtp.send_message(msg)
- 기존 비밀번호 변경시 초기화
from dotenv import load_dotenv
from dotenv import dotenv_values
# 기존 환경 변수 제거
os.environ.pop('EMAIL_ADDRESS', None)
os.environ.pop('EMAIL_PASSWORD', None)
# .env 파일 다시 로드
load_dotenv()
'[업무 지식] > Crawling' 카테고리의 다른 글
[youtube] 유튜브에서 동영상 정보 수집하기 (0) | 2025.01.01 |
---|---|
[API 데이터 수집, 활용] 트위터(X)에서 데이터 수집하기 (0) | 2025.01.01 |
[CacheControl] 변경된 데이터만 추출하기 (0) | 2025.01.01 |
[HTTP 통신 오류] HTTP 상태 코드 & 파이썬에서 오류 처리하기 (0) | 2025.01.01 |
[크롤러 만들기] 파이썬으로 크롤러 만들기 (0) | 2025.01.01 |