2017 데이터 그랜드 컨퍼런스에 참석하며…

키노트와 비즈니스 키노트, 일련의 발표들을 들었다. 그리고 점심시간엔 부스에 전시된 제품들이나 연구결과들을 공유하는 자리에 가서 궁금한 것들을 물어보고 답변도 듣는 시간을 가졌다. 부스에서는 나도 모르게 “그러면 이 솔루션은 어디에 활용하는 건가요? 사용대상은 누구인가요?” 등의 질문이 툭 튀어나왔다. 산업 및 조직심리를 공부할 때 지도교수님께 지겹도록 들었던 질문을 내가 하고 있다니 세상에나!

연구결과는 실용성이나 시사점 또는 공익성이 있어야 하는 거다. 데이터 분석결과는 퍼즐조각들과 같아서, 하나의 이야기로 잘 연결하여 유의미한 그림을 제공하게 되면 분석결과의 가치가 빛을 발하게 된다. 그런데, 필자는 피같은 시간을 내서 갔는데, 어떤 명확한 그림에 대한 구경도 못한 채 그냥 분석해서 결과를 리뷰하는 수준으로 끝난 발표시간이 있었다. 빅데이터를 아무리 외치고 머신러닝을 한다고 해도, 산업이 크게 발전할 수 없는 데에는 다 그만한 이유가 있는 거라는 생각이 들었다.

예나 지금이나 변함없는 생각은 데이터 분석결과보다도 분석결과가 어떤 옷을 입느냐가 훨씬 더 중요하다는 것이다. 앞으로도 수많은 데이터들이 의미로 옷입고 세상에 자신을 드러냈으면 좋겠다. 조금 더 그런 자리에 있을 거라고 믿어본다. 나도 일조할 수 있으면 좋겠다고 생각하며 글을 맺는다.

파이썬으로 웹 크롤링 시작하기

HTML과 XML 파싱에 사용되는 python 패키지로 BeautifulSoup이 있다. 현재 버전은 4.4.0이다.

BeautifulSoup의 문서는 다음 한 페이지에 모두 설명되어 있다. 한 페이지의 양이 좀 길기는 하다. 한글문서가 있었던 것 같은데 지금은 링크가 깨져있다.

문서: https://www.crummy.com/software/BeautifulSoup/bs4/doc/

코드:

from bs4 import BeautifulSoup
html_string = '''
<html>
<head>
<title>나루의 HTML parsing</title>
</head>
<body>
</body>
</html>
'''
soup = BeautifulSoup(html_string, 'lxml')
title = soup.select("title")[0].get_text()
print(title)

결과:

나루의 HTML parsing

HTML 태그 중 title 태그의 값을 가져오는 코드를 간단히 구현하였다.

select method는 결과를 list type으로 가져온다. 그리고 get_text method는 태그 사이에 있는 텍스트 값을 문자열로 가져온다.

다음에는 실제로 웹 페이지의 정보를 가져오는 코드를 작성해 보자.