지난 포스팅에서 다음 블로그의 제목과 URL을 가지고 오는 방법을 작성했습니다.
지난 포스팅은 여기를 참고하세요
오늘은 블로그 게시 날짜를 가지고 오는 방법을 알아보겠습니다.
위 그림에서 빨간색 부분은 블로그의 리스트가 들어있는 부분에 대한 영역입니다.
아래 그림의 파란색 네모 안의 정보를 담고 있는 부분입니다.
아래 그림의 빨간색 네모 부분과 파란색 네모 부분을 살펴보겠습니다.
위 그림의 빨간색 부분과 노란색 부분은 아래 그림의 빨간색 부분과 노란색 부분에 해당합니다.
블로그 검색결과에서 날짜는
[ list_info ty_doc ] 클래스 안에 있는 [ area_writer ] 클래스 안의 [ f_nb ]클래스 중
두번째 [ f_nb ]클래스에 해당하는 요소의 텍스트를 추출하면 됩니다.
대략 위 그림과 같은 구조에서 두번째 [ f_nb ]클래스의 요소 내의 텍스트를 추출하면 됩니다.
date_datas = driver.find_element(By.CLASS_NAME, "list_info.ty_doc").find_elements(By.CLASS_NAME, "area_writer")
먼저 [ list_info ty_doc ]클래스 안에서 모든 [ area_writer ] 요소들을 찾습니다.
for dates in date_datas:
k = dates.find_elements(By.CLASS_NAME, "f_nb")
temp_date = k[1].text
[ area_writer ]요소 들 중 하나하나에서
[ f_nb ]요소를 모두 찾은 후
그 중 두번째 [ f_nb ]클래스의 텍스트를 추출하여
tmep_date 라는 변수에 담아줍니다.
해당 코드를 실행하면 다음과 같은 결과가 나옵니다.
만약 오늘 게시된 블로그가 있다면,
아마 [ 1분전 ] [ 2시간전 ] 이렇게 나타날 것입니다.
오늘 게시된 블로그는 오늘 날짜로 표시되게 하고,
향후 엑셀파일로 정리하기 위해
날짜를 [ . ]로 구분하는게 아닌 [ - ]로 구분하게 만들어 보겠습니다.
for dates in date_datas:
k = dates.find_elements(By.CLASS_NAME, "f_nb")
temp_date = k[1].text
if len(temp_date)==10:
j = temp_date.split(".")
final_date = j[0] + "-" +j[1] + "-" + j[2]
else:
final_date = datetime.datetime.now().strftime("%Y-%m-%d")
먼저 if 문을 통해 temp_date안의 값이 길이가 10인지 검사해 줍니다.
10이라면 [ 2022.10.11 ]과 같은 형태로 되어 있기 때문에
split() 함수를 통해 [ . ]를 기준으로 나누어 값을 j 라는 변수에 리스트 형태로 넣어줍니다.
그런 후 j 에 담긴 값 하나하나를 [ - ]로 연결하여 final_date에 넣어줍니다.
만약 temp_date안에 담긴 값을 길이가 10이 아니라면
[ 1분전 ] [ 2시간전 ]과 같이 오늘 게시된 블로그일 것이므로
final_date = datetime.datetime.now().strftime("%Y-%m-%d")
final_date 값으로 오늘 날짜를 strftime() 함수를 사용해 yyyy-mm-dd 형태로
넣어 줍니다.
위 코드를 실행하기 위해서는 [ import datetime ]을 해주어야 합니다.
이제 print(final_date) 를 실행하면
블로그가 게시된 날짜까지 불러올 수 있습니다.
다음에는 모든 페이지의 블로그 제목과 URL, 게시일자를 가지고 오는 방법을
포스팅해보도록하겠습니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ 크롤링-Selenium ] 파이썬 다음 블로그 크롤링(Python Selenium)(4)-엑셀 저장 (0) | 2022.11.24 |
---|---|
[ 크롤링-Selenium ] 파이썬 다음 블로그 크롤링(Python Selenium)(3)-페이지 이동 (0) | 2022.11.24 |
[ 크롤링-Selenium ] Python Selenium 요소 찾기(Locating Elements) (0) | 2022.11.22 |
[ 크롤링-Selenium ] 파이썬 다음 블로그 크롤링(Python Selenium)(1) (0) | 2022.11.21 |
[ 크롤링-Selenium ] Python Selenium get_attribute() 셀레니움 요소값 (0) | 2022.11.20 |