Data 받아오기 1) selenuim을 이용하여 웹페이지에서 데이터를 검색 2) 원하는 URL 입력받는다 3) headless하게 구현하기 위해 chrome option 적용하여 driver 생성 4) naverNews는 댓글 영역 하단 부 '더보기'를 지속적으로 눌러줘야하므로 driver의 find_element_by_css_selector함수로 해당 class인 u_cbox_btn_more을 페이지가 끝날 때까지 돌림 5) 위의 과정에서 얻은 페이지 소스를 beautifulSoup을 이용하여, find_all을 통해 {사용자ID, 댓글, 작성시간}의 데이터를 각각 raw하게 뽑음. (naverNews의 제한적인 특징으로 사용자ID 뒤 4자리는 비공개처리됨)
사용할 DataSet으로 가공 1) 리스트 형태로 각각 nicknames(사용자ID), comments(댓글), times(작성시간)을 뽑아냄 2) 세 리스트에서 짝을 이루는 쌍을 dictionary형태로 {사용자ID, 댓글, 작성시간} 다음과 같이 저장 3) 저장된 dictionary list(info_dic)을 최종 결과 리스트인 naverNewsList에 저장한다.
함수 구현 1) KEYWORD 기반 검색 기능 2) 가장 자주 나온 단어 검색 기능 3) ID 기반 검색 기능 4) 시간 대별 검색 기능 등 여러 함수 구현 예정
=> 수정사항
data를 get하여 정제하는 파일을 모듈로 분리해 내어 list형태로 저장된 데이터셋을 반환하여
main 에서 사용할 수 있도록 한다. 이 후 main에서 리스트를 받아와 url을 입력받아 데이터를
받아오는 방식으로 사용한다. 이 후, keyword기반, id기반, 시간대 기반 검색 함수를 구현하였고
시간대별 검색 함수의 기능 보강과 가장 자주 나온 단어 검색 기능을 추가 구현할 예정이다.
-
4차 수정사항
기존파일의 분리 관리 시, import관련 오류 문제 해결 완료(하나의 파일로 관리) 사용자 UI의 틀을 구축해놓았고, 곧바로 함수별 추가 세부 구현 예정
-
5차 수정사항
1) 네이버 댓글공간엑서 받아온 날짜 정보를 YYYY-MM-DD형식으로 바꿈. ('방금 전, 몇 분 전, 몇 시간 전, 몇 일 전'의 경우를 처리하기 위해 dateTime과 timeDelta 모듈을 활용하여 현재 날짜를 기준으로 계산하여 YYYY-MM-DD로 저장될 수 있도록 코드 추가) 2) 시간대별로 (시작시간, 끝시간)을 입력하여 그 시간에 해당하는 기사를 출력해주는 함수 구현
가장 자주 많이 나온 단어 검색과 MATPLOTLIB을 활용한 시각적 표현 구현 예정
-
6차 수정사항
konlpy를 활용한 명사 추출 및 단어 빈도수가 많으 순대로 사용자가 입력한 limit만큼 출력해주는 함수 구현 완료