Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

Front-end Developer

Python_웹스크래핑 본문

Python

Python_웹스크래핑

Brad Daeho Lee 2021. 2. 15. 23:48

 

웹스크래핑

 

 

 

 

웹스크래핑이란 웹 페이지에서 원하는 정보들을 자동으로 추출하는 기법이다. 

파이썬을 이용해서 웹스크래핑을 해보았다.

 

지니뮤직 페이지에 있는 곡 순위와 곡 정보를 스크래핑 해보려고 한다.

 

 

 

 

지니 뮤직 페이지

 

 

크롤링 기본 세팅

 

 

 

 

 

 

 

파이썬으로 웹스크래핑을 하기위해서 먼저 beautifulsoup4 패키지를 추가하고, 패키지에서 만들어놓은 크롤링 기본 세팅을 사용한다.

 

먼저 지니뮤직 페이지 url을 복사해서 requests.get(url, headers=headers) 안에다가 넣고 print(soup) 입력하면 해당 웹페이지 HTML 정보를 다 불러올 수 있다.

 

이제 가져온 HTML 정보를 가지고 웹 페이지에서 페이지안에 있는 모든 곡 순위, 노래 제목, 가수 이름을 가져올 수 있다.

 

먼저 개발자 도구에 들어가서 HTML 정보를 보면 tr태그마다 각 곡에 정보들이 들어가 있음을 알 수 있다. musics이라는 변수값에 tr까지 선택자 정보를 주기 위해서 아무 tr에다가 마우스 오른쪽을 클릭하고 'Copy'에서 'Copy selector'를 클릭한다. 그리고 soup.select() 함수 안에 선택자 정보를 붙여넣는다. 그러면 모든 tr안에 있는 값들을 가져올 수 있다.

 

각각 tr안에 있는 정보들을 가져오기 위해서 반복문을 사용한다. 'For music in musics:'

 

각각 tr안에 있는 곡 순위, 노래 제목, 가수 이름 정보들을 불러오기 위해서 해당 정보에 마우스 오른쪽을 클릭하고 개발자 도구를 열면 해당 html정보가 뜬다. 그다음에 아까와 같이 'Copy selector'를 클릭한다음에 tr 밑으로 속해있는 선택자들을 music.select_one() 함수 안에다가 붙여넣고 각각의 정보들을 스크래핑 할 수 있는 변수를 만들면 된다.

 

여기서 music.select_one()뒤에 .text를 붙이면 해당 선택자에 있는 text들만 불러낼 수 있다. 혹시 text안에 원치않는 빈공간이나 정보들이 같이 나오면 text 뒤에 strip() 또는 split() 함수를 사용하면 된다.

 

마지막으로 각각에 변수들은 순서에 맞게 print() 안에다가 넣으면 정보들이 나열된 tr순서에 맞게 불려온다.

 

 

'Python' 카테고리의 다른 글

Python_Flask: 서버 만들기  (0) 2021.02.17
Comments