Note
웹 크롤링 - 네이버 뉴스 본문
데이터를 만져보는 사람들이라면 어디선가 한 번쯤은 들어봤을 크롤링에 대한 글입니다.
크롤링을 해서 얻은 데이터에 대한 책임은 데이터를 사용한 사람에게 있습니다.
크롤링을 하기 좋은 키워드는 사람들의 반응이 많은 것이 데이터를 수집하기 용이하다.
그래서 저는 LH에 대해서 네이버 뉴스 기사를 크롤링해봤습니다.
(1) 네이버 뉴스 url 수집
크롤링을 하기 위한 라이브러리들을 임포트 시켜주고 설치합니다.
크롤링을 하기 위해서 크롬을 사용했고 크롬 드라이버를 설치해야 합니다.
네이버 검색창에 입력할 키워드를 설정해 준 모습이다.
코드를 실행하면 크롬 창이 띄워지고 검색창에 내가 크롤링하고자 하는 검색어가 검색되며 url을 가져오게 된다.
timesleep(3)은 지연시간을 의미한다. 지연시간 없이 크롤링을 하게 되면 중간에 수집이 되지 않을 수 있다.
빈 첫 번째 리스트에 url을 수집하고 페이지에 있는 뉴스들을 가져온다.
서브 리스트를 만들어 한번 더 url을 수집한다.
두 리스트를 합쳐 하나의 리스트를 만든다.
만든 url을 csv로 저장하는 코드이다.
(2) 뉴스별 댓글 수집
저장해둔 url을 불러오고 크롬 창을 띄우는 과정이다.
기사 댓글 개수와 더보기 등 클릭해서 수집할 수 있도록 하는 작업을 해준다.
위 코드를 실행시키면 댓글들을 수집한다.
(3) 기사 제목, 날짜, 추천 수 수집
(4) 기사 감정 수집
위 코드를 통해 빈 딕셔너리를 하나 생성하고 키와 밸류 값들을 묶어준다.
이제까지의 작업들을 for문을 통해서 돌려주면 네이버 뉴스 기사와 제목 댓글 등등을 수집한다.
이를 판다스를 통해 데이터 프레임으로 만들어주고 엑셀 파일로 저장한다.
이러면 크롤링이 종료가 된다. 이 이후에는 자연어 처리를 통해서 원하는 결과를 얻을 수 있을지 추가 분석이 필요하다.
크롤링은 아직 완벽히 다루기 어려웠다. HTML도 기본적으로 알아야 하는 부분들이 꽤 있었다. 하지만 내가 관심 있는 부분이기 때문에 응용 버전을 처음부터 코드를 짜서 올려 보도록 하겠습니다.
이번 크롤링은 개인적인 목적으로 이용하기보다 공부 목적으로 사용했습니다.
'etc > Crawling' 카테고리의 다른 글
유튜브 채널 검색에 따른 채널 이름, 구독자 수, 영상 수 가져오기 (0) | 2022.05.02 |
---|---|
유튜브 api 활용 채널 정보 가져오기 (0) | 2022.04.11 |
video url을 통한 비디오 정보 수집 (0) | 2022.04.08 |
bs4와 selenium을 활용한 video url 수집 (0) | 2022.04.07 |
유튜브 댓글 크롤링 (0) | 2021.06.09 |