이제 뽑아온 노래 코드들로 각 페이지에 들어가서 데이터를 수집하려 한다.

 

모든 노래 주소는 ( https://music.bugs.co.kr/track/ + 코드 + ?wl_ref=list_tr_08_chart )

 

이런 형태로 되어 있어서 코드들만 바꾸면서 크롤링 하면 된다.

 

이제 노래 정보 페이지 형태들의 규칙성을 봐야한다.

 

페이지 형태는 크게 두가지로 보였으며

 

빨간 박스처럼 새창이 나오는 페이지와 안나오는 페이지로 구분했다.

 

새창이 나오는 페이지의 데이터만 분석 데이터로 이용했으며, 나머지 데이터는 일단 수집만 했다.

 

새창의 selector는 #participatingArtists으로 되어있었으며

 

속성을 불러왔을 때 비어있으면 노래 제목과 가수만 따로 저장을 하였다.

 

새창이 나오는 유효한 데이터는 다음과 같이 수집이 되었고

나머지 데이터는 다음과 같이 수집하여 저장 하였다.

 

유효한 데이터는 2,169건이고 나머지 데이터는 2,818건으로 수집되었다. (총 4,987건)

 

 

 

###

데이터가 필요하신 분이나 코드가 필요하신 분은

ho0shin48@gmail.com 으로 메일 보내주시면 공유해드리겠습니다.

'네트워크 분석 (연습)' 카테고리의 다른 글

데이터 수집(크롤링) - 1  (0) 2019.12.13
네트워크 분석 연습 주제  (0) 2019.12.13

먼저 원하는 분석하고자 하는 데이터가 공공데이터로 존재 하는지 찾아봤다.

 

역시 없었다.

 

그래서 스트리밍 사이트(멜론, 지니, 벅스, 바이브 등등)에서 크롤링을 할 계획을 짰다.

 

멜론, 지니, 바이브 등의 대다수가 반응형 웹으로 되어있어서 Selenium이 필요해 보였다.

 

그 중 벅스가 유일하게 Request형식으로 크롤링이 가능했고 데이터 수집 속도를 위해 벅스를 선택했다.

 

수집은 파이썬에서 BeautifulSoup 라이브러리를 사용하였다.

 

# 벅스 주간 차트 페이지

 

모든 노래의 데이터 수집은 불가능해서 차트에 들어간 노래만 크롤링 하기로 했다.

 

일일 단위는 너무 변동성 없어서 일주일 단위로 수집하기로 했다.

 

수집기간은 2014.01.01 ~ 2019.11.29로 했고 약 6년간의 데이터다.

 

먼저 각 주간 차트 페이지에 있는 모든 노래의 페이지 고유 코드를 크롤링 하기로 했다.

 

 

각 노래 페이지에 들어가면 빨간 박스와 같이 노래의 고유 코드가 주소로 적혀있고

 

주간차트 페이지의 각각의 노래 링크들 마다 고유코드를 주소로 삼고있었다.

 

모든 노래들은 다음과 같이 tbody로 묶여있었고

 

tbody안에 다음과 같이 노래의 주소가 href로 적혀있었다.

 

그래서 모든페이지의 tbody를 불러서 그 안에 href 속성을 가지고 있고

 

그 주소가 "https://music.bugs.co.kr/track/ 으로 시작하는 모든 문장을 뽑아 오기로 했다.

 

 

코드는 다음과 같이 주소들을 뽑아온 뒤 코드만 뽑고

 

중복되는 코드는 제외 시켰다.

 

 

코드는 총 5478개가 수집되었다.

'네트워크 분석 (연습)' 카테고리의 다른 글

데이터 수집(크롤링) - 2  (2) 2019.12.13
네트워크 분석 연습 주제  (0) 2019.12.13

주제 : 한국 가요계에서 어떤 사람이 영향력(?)이 높은지 분석

수집할 데이터 : 노래마다 가수, 작곡, 작사, 편곡 등의 사람들

'네트워크 분석 (연습)' 카테고리의 다른 글

데이터 수집(크롤링) - 2  (2) 2019.12.13
데이터 수집(크롤링) - 1  (0) 2019.12.13

- Difficulty ★☆

- Question

- Answer

Plus One.txt
0.00MB

'알고리즘 연습' 카테고리의 다른 글

[Python3] Remove Nth Node From End of List  (0) 2019.08.06
[Python3] Reverse Integer  (0) 2019.08.05
[Python3] ZigZag Conversion  (0) 2019.08.04
[Python3] Add Two Numbers  (0) 2019.08.03
[Python3] Container With Most Water  (0) 2019.08.02

- Difficulty ★★☆☆☆

- Question

- Answer

Remove Nth Node From End of List.txt
0.00MB

'알고리즘 연습' 카테고리의 다른 글

[Python3] Plus One  (0) 2019.08.08
[Python3] Reverse Integer  (0) 2019.08.05
[Python3] ZigZag Conversion  (0) 2019.08.04
[Python3] Add Two Numbers  (0) 2019.08.03
[Python3] Container With Most Water  (0) 2019.08.02

- Difficulty ★☆

- Question

- Answer

Reverse Integer.txt
0.00MB

'알고리즘 연습' 카테고리의 다른 글

[Python3] Plus One  (0) 2019.08.08
[Python3] Remove Nth Node From End of List  (0) 2019.08.06
[Python3] ZigZag Conversion  (0) 2019.08.04
[Python3] Add Two Numbers  (0) 2019.08.03
[Python3] Container With Most Water  (0) 2019.08.02

- Difficulty ★★☆☆

- Question

- Answer

ZigZag Conversion.txt
0.00MB

'알고리즘 연습' 카테고리의 다른 글

[Python3] Remove Nth Node From End of List  (0) 2019.08.06
[Python3] Reverse Integer  (0) 2019.08.05
[Python3] Add Two Numbers  (0) 2019.08.03
[Python3] Container With Most Water  (0) 2019.08.02
[Python3] Climbing Stairs  (0) 2019.08.01

- Difficulty ★★★☆☆

- Question

- Answer

Longest Substring Without Repeating Characters.txt
0.00MB

# 메인 페이지에 게시판 만들기

왼쪽에 vies.py를 클릭

 

urls.py를 통해 들어올 함수를 먼저 제작

메인페이지에 데이터를 전송하기 위해 models.py로 부터 테이블의 모든 데이터를 불러와서 id열로 정렬시킨 후

게시판의 글이 많아지면 Page를 나누기 위해 Paginator를 통해 한 화면에 7개의 글만 나오도록 설정

그 후 다른 Page를 누를 때 마다 그 Page의 정보를 현재 메인 페이지에 전달

만약 메인 페이지에 Page 정보가 없을 시 1Page로 받게끔 설정

 

다음은 urls.py를 통해 경로를 설정

 

path에 경로를 minlist/로 설정함에 따라서

host 주소로 할 경우 http://127.0.0.1/mainlist/ 의 주소로 이동 시

메인 페이지가 출력

 

views.py에서 만든 함수들을 통해 출력 될 html 페이지들을 만들기 위해

페이지들만 담길 폴더를 먼저 생성

 

폴더 명은 무조건 templates라고 해줘야 함

 

templates폴더 안에 먼저 메인 페이지인 MainList.html을 만들어 줌

 

메인 페이지의 html 코드

e8.txt
0.00MB

 

위의 코드들을 완벽하게 수행 하면 다음과 같이 메인페이지를 출력 할 수 있다.

추후 다음 글들을 통해 기능들을 추가 할 예정

'Python3 게시판 제작' 카테고리의 다른 글

게시판 제작 - 3 (어드민 페이지)  (0) 2019.07.29
게시판 제작 - 2 (db만들기)  (0) 2019.07.28
게시판 제작 - 1 (설치)  (0) 2019.07.27

- Difficulty ★★★☆☆

- Question

- Answer

Add Two Numbers.txt
0.00MB

'알고리즘 연습' 카테고리의 다른 글

[Python3] Reverse Integer  (0) 2019.08.05
[Python3] ZigZag Conversion  (0) 2019.08.04
[Python3] Container With Most Water  (0) 2019.08.02
[Python3] Climbing Stairs  (0) 2019.08.01
[Python3] Game of Life  (0) 2019.07.31

+ Recent posts