멜론 인기차트 크롤링 프로젝트를 진행했다.
저번에 진행한 언론 뉴스 크롤링보다 좀더 다양한 내용을 담을 수 있는 실무적인 학습단계를 배운다.
해당 페이지는 우리가 조사할 대상이 2020년 연간 멜론차트를 표시한 것이다.
우선 크롤링에 앞서 필요한 라이브러리와 임포트 및 기능등을 비/ 활성화 해주고 크롤링 준비 단계를 마쳐준다.
def함수로 시작고,
url주소를 get하는 함수를 만들 때는 타임 딜레이를 걸어 매크로 밴을 피하는 부분을 유의하자.
노래 제목과 가수 이름 을 추출하는 코드문인데
저번 뉴스 프로젝트와는 다른 코드문을 작성했다.
저번 프로젝트에서는 주로 .find_all('div'{'class':'ellipsis rank01'}) 이러면 형태의 긁어오는 함수를 주로 봤지만
오늘은 다른 형태로 원하는 정보를 취득하는 코드문을 작성했다. 쓰임의 용도는 동일하다
곡의 아이디 추출하는과정에서 '[^0-9]'은 생략할 부분이다, 또한 except는 아이디가 존재하지 않을 경우를 대비하여 지속성을 위해 코드문을 작성해준다.
가사 수집 코드문에서 중요한점은 곡 정보 페이지로 다시 들어간느 부분이다.
여기서 클릭하는 동적인 움직임이 추가 됨과 아이디별로 곡정보가 달라짐으로 이 두가지를 반드시 체크하면서 코드문을 작성해야한다.
가사의 코드가 줄별로 br테크로 나뉘어져 있어 그대로 읽어 오면은 자칫 띄어쓰기 오류가 발생할 수 있다.
태그와 공백 지우기를 통해 데이터를 정제하여 온전히 가져와야한다.
그렇게 데이터를 모두 정제했으면 데이터 프레임 형태 만들어 csv로 만들어준다.
그런 후 colab으로 csv파일을 읽어와 데이터 시각화 과정을 거쳐주면 된다.
만약 여기서 필요없는 글자를 발견하고 그 글자를 데이터 분석에서 배제 하려면
위 불용어 리스트에 추가해주면 된다.