Introduction to web scraping

웹스크래핑(Web Scraping)은 웹사이트에서 데이터를 추출하는 과정으로 정의된다. 웹상에서 이용가능한 일부 데이터는 수집하기도 쉽고 이용하기도 쉬운 형태으로 되어 있다. 예를 들어 다운로드 가능한 CSV(콤마 구분값) 데이터셋은 데이터 분석 스크립트를 작성해서 쉽게 불러오거나 스프레드쉬트 엑셀로 바로 가져올 수 있다. 하지만, 공개되었어도 데이터를 바로 재사용 가능한 것은 아니다. 예를 들어, PDF 파일, 웹사이트 표, 웹페이지에 산재된 데이터를 바로 재사용가능하지 않은 데이터 예로 들 수 있다.

재사용을 목적으로 정보를 추출하는데 웹사이트를 스크랩하는 방식은 다양하다. 가장 간단한 형태로 웹페이지 일부를 복사해서 붙여넣는 방식도 있지만, 추출할 데이터가 어마어마한 경우, 혹은 다수 웹페이지 산재되어 있는 경우 비현실적이다. 대신에 전문화된 도구와 기술을 사용해서 웹페이지에서 데이터를 추출하는 과정을 자동화할 수 있다. 자동화하는 과정에는 방문할 웹사이트를 정의하고, 추출할 정보를 지정하고, 데이터 추출 작업이 페이지 하단에 닫게 되면 멈출지, 하이퍼링크를 따라서 추출과정을 재귀적으로 반복하는 과정도 포함된다. 웹스크레핑 자동화에는 데이터 추출 작업이 정기적으로 실행될지 데이터에 변경사항만 잡아낼지도 포함된다.

선수 학습

웹스크래핑이 웹페이지에서 데이터를 추출하는 기법이라, 웹상에 정보를 표시하는데 사용되는 기기반기술에 대한 이해가 일부 필요하다. 따라서, 이번 학습은 학습자가 HTMLDocument Object Model (DOM)에 대한 친숙하다는 가정을 깔고 시작한다.

이번 학습 첫부분은 브라우저 확장(Browser Extension)기능을 사용해서 웹스크래핑 기본개념과 함께 웹페이지 웹구성요소(element) 선택하는데 사용되는 Xpath 구문도 소개한다. 두번째 부분은 전문 라이브러리를 사용해서 웹사이트를 긁어오는데 Python programming language, object-oriented programming 개념의 친숙성을 바탕으로
사용자 정의 컴퓨터 프로그램을 작성한다.

소프트웨어 요구사항

Setup절을 참조해서 이번 학습을 따라가는데 필요한 소프트웨어를 설치한다.

Schedule

Setup Download files required for the lesson
00:00 1. 들어가며: 웹스크래핑이란 무엇인가? 웹스크래핑은 무엇이고 왜 유용한가?
웹스크래핑을 사용하는 전형적인 사례(use case)는 무엇인가?
00:10 2. Xpath를 사용해서 웹페이지 콘텐츠 선택하기 웹페이지에서 특정 요소(element)를 선택하는 방법은 무엇인가요?
XPath는 무엇이고 어떻게 사용하나요?
00:55 3. Manually scrape data using browser extensions How can I get started scraping data off the web?
How can I use XPath to more accurately select what data to scrape?
02:00 4. Web scraping using Python and Scrapy How can scraping a web site be automated?
How can I setup a scraping project using the Scrapy framework for Python?
How do I tell Scrapy what elements to scrape from a webpage?
How do I tell Scrapy to follow URLs and scrape their contents?
What to do with the data extracted with Scrapy?
04:00 5. Conclusion When is web scraping OK and when is it not?
Is web scraping legal? Can I get into trouble?
How can I make sure I’m doing the right thing?
What can I do with the data that I’ve scraped?
04:30 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.