파이썬 공부(뷰티풀 수프 실습)

파이썬 공부(뷰티풀 수프 실습)

Summary:

지금까지 배운 뷰티풀수프 가이드를 기초로 네이버 블로그의 패션&미용분야 주목받는 글 을 뽑아냈습니다.


1. 웹페이지 구조 파악하기

프롤로그

네이버 블로그 유저들이 매일 어떤 글에 관심을 갖는지 궁금하다. 따라서 네이버 블로그 메인 페이지의 ‘패션·미용 - 주목받는 글’에서 제목만 뽑아내서 사람들의 키워드에 대한 주목 정도를 파악하고자 한다.

네이버 블로그 페이지 접속

패션·미용 페이지에 접속하니 아래와 같이 주목받는 블로그 포스팅이 리스트로 나왔다.

pic1

여기서 네모박스로 표시된 포스팅의 제목에 커서를 놓고 마우스 오른쪽 버튼을 클릭한다. 그 다음 검사를 클릭한다.


pic2


그러면 이런 코드 가득한 화면이 표시된다. 뚫어져라 코드를 쳐다보자. 화면 상 보이는 부분에 대해서는 <ul>안에 <h5>가 있고 그 안에 <a ~>포스팅 제목</a>가 숨어있다. 내가 이 웹사이트에서 꺼내오고 싶은 건 이 부분이다.


pic3


이 정도까지만 파악하면 됐다. 이제 파이썬 에디터를 켜서 코드를 짤 차례다.


2. 파이썬 코드 짜기

준비물: 파이썬 에디터(아톰), 터미널


기본 세팅

Day7에서 배웠던 urllib와 Day8의 Beautiful Soup을 이용할 것이다. 언제나 시작은 내가 사용할 패키지를 불러오는 것으로 한다.

import urllib.request
from bs4 import BeautifulSoup

내가 분석할 페이지 지정

분석하고자 하는 페이지 주소를 파이썬에 알려줘야 한다. 주목받는글 파트는 다수의 페이지로 구성되어 있다.

* 첫 페이지 : http://section.blog ~ .currentPage=**1**&option. ~

* 다섯번째 페이지 : http://section.blog ~ currentPage=**5**&option. ~

아하. 페이지주소 전체틀은 변하지 않고 중간에 currentPage=숫자 부분이 1씩 증가하면서 페이지 수가 바뀐다는 것을 알 수 있다. 따라서 숫자 전과 후로 페이지 주소를 나눠 변수를 설정해두는 게 심적으로 편할 것 같다. 또, 난 전체 페이지를 다 끌어올 생각이 없기 때문에 10페이지까지만 수집하도록 정해두기로 한다.

TARGET1 = "http://section.blog.naver.com/sub/PostListByDirectory.nhn?option.page.currentPage="
TARGET2 = "&option.templateKind=0&option.directorySeq=18&option.viewType=default&option.orderBy=quality&option.latestOnly=1"
PAGES = 10


크롤링

이제부터가 핵심이다.

  1. 페이지가 여러개니까 for 문을 이용한다. 숫자를 1씩 증가시켜가면서 url을 불러들이고 이를 뷰티풀 수프로 지정한다.

  2. 아까 페이지를 검사할 때 <h5>태그 안에 포스팅 제목들이 깔려있었다. 따라서 <h5> 태그에 대해 싹 찾아주는 find_all 함수를 쓴다. <h5> 안 첫번째 내용을 태그 제외하고(.string) 프린트할 수 있도록 명령하고 에러때문에 for문이 멈추지 않도록 예외처리를 해준다.

# 1
for index in range(0, PAGES):
with urllib.request.urlopen(TARGET1 + str(index + 1) + TARGET2)as url:
data = url.read()
bs = BeautifulSoup(data, "html.parser")

# 2
query = bs.find_all('h5')
for child in query:
try:
print(
"%s\t" %
(child.contents[0].string)
)
except AttributeError:
pass

3. 터미널에서 실행하기

지금까지 짠 코드를 적당한 폴더에 저장한다. 나는 이 곳에다 저장했다. pic4

터미널을 열고 파이썬 파일이 들어있는 디렉토리로 이동한 뒤 파이썬 파일을 실행한다. 파이썬 3 버전을 이용하고 있다면 꼭 python 파일명.py가 아닌 python3 파일명.py를 입력하여 실행해야 한다.

pic5

실행 결과 위와 같이 제목들만 뽑아서 나열된다. 이를 가지고 많이 언급되는 키워드를 추출할 수 있다. 그를 통해 사람들의 관심사를 알아내고 자주 노출되는 브랜드와 상품을 알 수도 있다. 이에 대해서는 다음 포스팅에서 기록하도록 한다.


Hyeyeon

A Blog about E-Commerce and Product Management

comments powered by Disqus

    rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora