Front-end Developer
Python_웹스크래핑 본문
웹스크래핑
웹스크래핑이란 웹 페이지에서 원하는 정보들을 자동으로 추출하는 기법이다.
파이썬을 이용해서 웹스크래핑을 해보았다.
지니뮤직 페이지에 있는 곡 순위와 곡 정보를 스크래핑 해보려고 한다.
파이썬으로 웹스크래핑을 하기위해서 먼저 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 |
---|