대부분의 스트리밍사이트에서는 노래가사가 복사가 되지 않는 문제가 있다. 노래가사들을 가지고 어떤 내용의 가사가 많은지 분석하고 싶어서 방법을 이리저리 찾아보던와중 크롤링이라는 좋은 기법을 알게 되었고 이를 응용해보기로 하였다.
먼저, 시작하기에 앞서 관련 개념들에 대해 먼저 정리해보도록 하겠다.
크롤링이란?
크롤링(crawling)이란 웹페이지를 읽어와 웹페이지의 내용을 추출해내는 행위이다.
일일이 사람이 웹페이지로부터 데이터를 수집하기 어려울 때 이용하는 기술이라고 보면 될 듯하다.
크롤링을 시작하기전에 먼저 크롤링을 하기위한 환경을 한번 세팅해보겠다.
개인의 노트북이 아닌 캐글이라는 곳에서 다룰 예정이다.
(개인 노트북으로 실행 할려면 어떻게 해야하는 지는 조만간 다루도록 하겠다)
캐글이란?
데이터분석이나 모델 분석 등을 활용하는 경진대회를 열고 이를 통해 상금을 획득할 수 있으며 데이터 분석을 하는 사람들을 이어주는 커뮤니티 기능까지 하는 곳이라 생각하면 된다.
또한 주피터 노트북과 코드 실행에 필요한 리소스까지 제공해주므로 컴퓨터 사양이 열악한 환경에서도 데이터 분석을 하는데 걱정이 없다는 장점도 있다!
그러므로 캐글이라는 플랫폼을 활용해서 크롤링을 하고 크롤링을 통해 얻은 데이터를 분석해보도록 하겠다.
크롤링을 하기 위해서는 셀레니움이란 게 필요하다.
셀레니움이란?
셀레니움(Selenium)은 웹 애플리케이션 자동화 및 테스트를 위한 포터블 프레임워크이다.
즉, 웹페이지에서 사람이 일일이 체크하고 수행하는 일들을 자동화해주는 툴이라 생각하면 편하다.
파이썬에서는 간단히 pip를 통해 설치가 가능하다.
개발환경 설정
먼저 각종 라이브러리 등을 최신정보로 업데이트 해주는 작업을 거쳐야한다.
우리는 셀레니움을 크롬과 연동하여 크롬 상에서 자동화 작업을 수행할 예정이다.
그러므로 크롬을 설치 하고 크롬 버전에 맞는 크롬드라이버를 설치해주고 셀레니움을 해줘야한다.
각종 라이브러리 등을 최신정보로 업데이트를 해준다.
!apt-get update
아래의 코드는 크롬을 다운 받는 코드이다.
%%bash
wget http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_94.0.4606.71-1_amd64.deb
dpkg -i google-chrome-stable_94.0.4606.71-1_amd64.deb; apt-get -fy install
아래의 코드는 pip를 통해 크롬드라이버, 셀레니움, 그리고 웹드라이버 매니저를 설치하는 코드이다.
웹드라이버 매니저는 현재 시스템에 설치된 크롬의 버전과 맞는 웹드라이버를 찾아 설치하고 설치된 경로를 셀레니움에 전달해주는 역할을 해준다.
여기선 버전에 맞게 잘 설치해줬으므로 웹드라이버 매니저가 없어도 잘 작동한다.
!pip install chromedriver-py==94.0.4606.41
!pip install selenium
!pip install webdriver-manager
아래 코드는 실행시 오류가 나타나지 않게 해주는 옵션을 설정해주고 이러한 옵션을 적용한 크롤러를 만드는 코드이다.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--single-process")
chrome_options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
#맞는 버전의 크롬과 크롬드라이버를 깔아주었기에 이렇게 실행해도 정상적으로 실행이 된다.
#driver = webdriver.Chrome(options=chrome_options)
정리
위코드를 한번에 정리하면 다음과 같다.
##콘솔에서 실행가능한 작업들
#최신화작업
!apt-get update
#크롬설치
%%bash
wget http://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_94.0.4606.71-1_amd64.deb
dpkg -i google-chrome-stable_94.0.4606.71-1_amd64.deb; apt-get -fy install
#크롬드라이버,셀레니움,웹드라이버매니저설치
!pip install chromedriver-py==94.0.4606.41
!pip install selenium
!pip install webdriver-manager
##파이썬 코드 상에서 실행 가능한 작업들
#크롤링을 해줄 크롤러 만들기
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--single-process")
chrome_options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
#맞는 버전의 크롬과 크롬드라이버를 깔아주었기에 이렇게 실행해도 정상적으로 실행이 된다.
#driver = webdriver.Chrome(options=chrome_options)
위 코드들이 차례대로 실행되었을 때 큰 에러없이 실행되었으며 마지막이 제대로 실행 되었을 경우,
크롤링을할 준비가 된 것이다.
다음시간에는 위의 크롤러가 크롤링을 어떻게 하는 과정에 대해 알아보도록 하겠다.
참조
https://dada-devdiary.tistory.com/32
Web Crawling - '멜론(Melon)' 크롤링(1)
Web Crawling - 크롤링을 위한 준비사항 안녕하세요! 오늘은 지난주에 학원에서 배웠던 내용을 토대로 음원사이트 멜론(Melon)의 일간 차트 크롤러를 만들어봤어요! 기록도 하고 복습도 할 겸 과정을
dada-devdiary.tistory.com
https://dada-devdiary.tistory.com/29
Web Crawling - 크롤링을 위한 준비사항
안녕하세요! 오늘은 지난주에 학원에서 배웠던 내용을 토대로 음원사이트 멜론(Melon)의 일간 차트 크롤러를 만들어봤어요! 기록도 하고 복습도 할 겸 과정을 올리려구요. 곡명, 앨범명, 상세 정
dada-devdiary.tistory.com
'개인프로젝트' 카테고리의 다른 글
[홈서버]홈 서버란 무엇인가? - 나만의 서버 구축기 #0 (1) | 2025.03.20 |
---|---|
[Python]추출한 멜론 노래 가사로 워드클라우드 만들기 with 캐글 (0) | 2023.01.09 |
[Python]멜론 노래 가사 추출하기(4)_수집한 데이터 가공하기 with 캐글 (0) | 2023.01.05 |
[Python]멜론 노래 가사 추출하기(3)_셀레니움으로 노래가사 찾기 with 캐글 (4) | 2023.01.04 |
[Python]멜론 노래 가사 추출하기(2)_셀레니움은 어떻게 요소들을 찾는가? with 캐글 (2) | 2023.01.02 |