웹 스크래핑(Web Scraping)은 자동화된 방식으로 웹사이트에서 데이터, 정보 또는 이미지를 추출하는 작업입니다. 쉽게 말해 '복사와 붙여넣기'를 완전 자동으로 수행하는 것이라고 생각하면 됩니다.
직접 프로그램을 작성하거나 기존 앱을 활용해 원하는 웹사이트에 접속한 뒤, 그 사이트에서 필요한 특정 정보만 골라서 가져오는 방식입니다. 웹사이트 전체를 통째로 다운로드하는 것보다 훨씬 정밀하죠.
모든 도구가 그렇듯 웹 스크래핑도 선하게도 악하게도 사용할 수 있습니다. 바람직한 활용 예로는 콘텐츠 기반 검색 엔진 순위 산정, 가격 비교 쇼핑, 주식 시장 정보 모니터링 등이 있으며, 일종의 리서치 도구로도 활용할 수 있습니다.
엑셀로 웹사이트를 스크래핑하는 방법
의외로 들리시겠지만, 엑셀은 오래전부터 웹사이트에서 데이터를 추출하는 기능을 갖추고 있었습니다. 최소한 Excel 2003부터 지원된 기능인데요. 문제는 대부분의 사람들이 웹 스크래핑이라는 개념 자체를 떠올리지 못하고, 설령 떠올리더라도 스프레드시트 프로그램으로 이런 작업이 가능하다고 생각하지 않는다는 점입니다. 하지만 놀랄 만큼 쉽고 강력합니다. 마이크로소프트 오피스 단축키 모음집을 만들어 보면서 그 방법을 알아보겠습니다.
1단계: 스크래핑할 사이트 찾기
가장 먼저 할 일은 정보를 가져올 웹페이지를 정확히 찾는 것입니다. https://support.office.com/ 에서 "frequently used shortcuts(자주 사용되는 바로 가기 키)"로 검색해 보겠습니다. Outlook, Excel, Word 등 구체적인 앱 이름을 함께 입력하면 더 정확한 결과를 얻을 수 있습니다. 나중에 쉽게 돌아올 수 있도록 결과 페이지를 즐겨찾기에 추가해 두는 것도 좋은 방법입니다.

검색 결과 중 "Windows용 Excel의 키보드 바로 가기 키" 항목을 클릭합니다. 해당 페이지에서 Excel 버전 목록을 찾아 최신 버전(Newer Versions)을 선택하세요. 이제 최신 버전 기준으로 작업하게 됩니다.
다시 검색 결과 페이지로 돌아가 다른 오피스 앱들의 결과 페이지를 각각 새 탭으로 열어 즐겨찾기 해두면 좋습니다. 대부분의 사람들은 여기서 단축키 수집을 끝내겠지만, 우리는 그렇지 않습니다. 엑셀에 데이터를 담아 언제든 원하는 방식으로 활용할 것입니다.
2단계: 엑셀 열고 스크래핑하기
엑셀을 열고 새 통합 문서를 시작한 뒤 Office Shortcuts라는 이름으로 저장합니다. OneDrive를 사용 중이라면 OneDrive에 저장해 자동 저장(AutoSave) 기능이 동작하도록 하는 것이 좋습니다.
통합 문서를 저장한 후 데이터(Data) 탭을 클릭합니다.

데이터 탭 리본 메뉴에서 웹에서(From Web)를 클릭합니다.

웹에서 마법사 창이 열립니다. 여기에 데이터를 가져올 웹사이트의 주소(URL)를 입력합니다. 웹 브라우저로 전환해 URL을 복사하세요.

복사한 URL을 마법사의 URL 입력란에 붙여넣습니다. 기본(Basic) 모드와 고급(Advanced) 모드 중 선택할 수 있는데, 고급 모드는 웹사이트의 데이터에 접근하는 방식을 훨씬 세밀하게 설정할 수 있습니다. 이번 실습에는 기본 모드만으로 충분합니다. 확인(OK)을 클릭합니다.

이제 엑셀이 웹사이트에 접속을 시도합니다. 몇 초 정도 걸릴 수 있으며, 진행 상황 창이 표시됩니다.

탐색기(Navigator) 창이 열리고 왼쪽에 웹사이트의 테이블 목록이 나타납니다. 하나를 선택하면 오른쪽에 미리보기가 표시됩니다. 여기서는 Frequently used shortcuts(자주 사용되는 바로 가기) 테이블을 선택합니다.

원하는 테이블을 찾기 어렵다면 웹 보기(Web View) 탭을 클릭해 실제 웹사이트 화면을 확인할 수 있습니다. 테이블을 찾으면 클릭해 가져오기 대상으로 선택합니다.

이제 창 하단의 로드(Load) 버튼을 클릭합니다. 그 외에도 몇 가지 옵션이 있지만 다소 복잡해서 첫 스크래핑 실습 범위를 넘어섭니다. 다만 그런 기능들이 존재한다는 점만 알아두세요. 엑셀의 웹 스크래핑 기능은 매우 강력합니다.

몇 초 후 웹 테이블이 엑셀에 불러와집니다. 아래 그림에서 1번 위치에 데이터가 표시됩니다. 2번은 웹사이트에서 데이터를 가져오는 데 사용된 쿼리(Query)를 나타냅니다. 통합 문서에 여러 개의 쿼리가 있을 때 이곳에서 필요한 쿼리를 선택하면 됩니다.

데이터가 엑셀 테이블 형태로 들어오는 것을 확인할 수 있습니다. 필터나 정렬 기능을 바로 사용할 수 있도록 이미 준비되어 있는 것이죠.
같은 방법으로 Outlook, Word, Access, PowerPoint 등 다른 오피스 앱의 단축키 페이지에도 반복 적용하면 됩니다.
스크래핑한 데이터 최신 상태로 유지하기
마지막으로 스크래핑한 데이터를 엑셀에서 항상 최신 상태로 유지하는 방법을 알아보겠습니다. 엑셀이 데이터 스크래핑 도구로 얼마나 강력한지 보여주는 좋은 예입니다. 참고로 이 정도도 엑셀이 할 수 있는 가장 기본적인 수준의 스크래핑에 불과합니다.
이번 예제에서는 https://www.cnbc.com/stocks/ 같은 주식 정보 웹페이지를 사용해 보겠습니다.

앞서 했던 것과 동일하게 주소창에서 새 URL을 복사해 붙여넣습니다.

탐색기 창에서 사용 가능한 테이블들을 확인할 수 있습니다. 여기서는 'Major U.S. Stock Indices(미국 주요 주가 지수)'를 선택합니다.

데이터를 가져오면 다음과 같은 스프레드시트를 볼 수 있습니다.

오른쪽에서 'Major U.S. Stock Indexes' 쿼리를 확인할 수 있습니다. 해당 쿼리를 선택해 강조 표시한 뒤, 테이블 도구(Table Tools) 탭의 디자인(Design) 영역으로 이동합니다. 그리고 새로 고침(Refresh) 아래의 화살표를 클릭한 후 연결 속성(Connection Properties)을 선택합니다.

쿼리 속성(Query Properties) 창의 사용 현황(Usage) 탭에서 새로 고침 방식을 제어할 수 있습니다. 특정 시간 간격으로 새로 고침하거나, 통합 문서를 열 때마다 새로 고침하거나, 백그라운드에서 새로 고침하거나, 이들을 조합해 설정할 수도 있습니다. 원하는 옵션을 선택한 후 확인(OK)을 눌러 창을 닫습니다.

이것으로 끝입니다! 이제 엑셀 스프레드시트에서 주가, 스포츠 경기 결과 등 자주 변동되는 어떤 데이터든 추적할 수 있습니다. 엑셀 수식과 함수를 잘 다룰 줄 안다면 이 데이터로 거의 무엇이든 할 수 있습니다.
주식 추세 분석을 시도해 보거나, 회사에서 판타지 스포츠 풀을 운영하거나, 날씨 정보를 기록하는 것도 좋겠죠. 한계는 오직 여러분의 상상력과 인터넷에 있는 데이터뿐입니다.