출근하기 전에, datetime 쪽 파싱 에러가 났다고 전달을 받았다
TypeError: argument of type ‘NoneType’ is not iterable
저장을 할 때 빈 값으로 들어가는 문제가 생겼고 출근하자마자 디버깅을 해보기로 했다.
프로그램 디버깅을 하기 전에, 크롤링하는 사이트에 들어가서 확인을 해봤다.
내가 만든 로직에서 사이트마다 게시물 시간을 '년 전', '일 전' 이런식으로 되어 있어 이 기준으로 파싱을 하였다. 하지만, 내가 크롤링하는 사이트에서는 29일 전을 마지막으로 년-월-일 날짜가 찍혀있었고 이것은 우리가 파싱할 때 string 타입으로 가져오기 때문에 저장할 때 오류가 났었던거다
파이썬에서는 문자열을 날짜로 바꿔주는 작업은 strptime이라는 것을 사용하면 된다고 그랬다.
datetime.strptime(post_time_str, '%Y-%m-%d %H:%M:%S')
post_time_str을 입력한 포맷에 맞춰 타입을 변경시켜준다.
예제
from datetime import datetime
# strftime 예제
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 예: '2024-10-16 14:30:00'
# strptime 예제
date_string = "2024-10-16 14:30:00"
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_date) # 예: datetime(2024, 10, 16, 14, 30)