SlideShare a Scribd company logo
1 of 33
Download to read offline
Data Designer
Week 05
Data Scraping
꿈꾸는데이터디자이너 시즌2
Scraping & Crawling
꿈꾸는데이터디자이너 시즌2
Web Scraping
the process of processing a web document and
extracting information out of it
꿈꾸는데이터디자이너 시즌2
Web Scraping
… … … …
… … … …
… … … …
꿈꾸는데이터디자이너 시즌2
Web Crawling
the process of iteratively finding and fetching web links
starting from a list of seed URL's
꿈꾸는데이터디자이너 시즌2
Web Crawling
URL
URL
URL
URL
URL
URL
URL
URL
URL
URL
URL
꿈꾸는데이터디자이너 시즌2
Web CrawlingWeb Scraping
Data
꿈꾸는데이터디자이너 시즌2
HTML & XML
꿈꾸는데이터디자이너 시즌2
Markup Language
태그 등을 이용해서 문서나 데이터의 구조를 표시한다
꿈꾸는데이터디자이너 시즌2
HTML
HyperText Markup Language
웹페이지를 위한 마크업 언어
XML
eXtensible Markup Language
다른 마크업 언어를 만드는데 사용하는 다목적 마크업 언어
서로 다른 시스템끼리 데이터를 쉽게 주고 받을 수 있게 한다
꿈꾸는데이터디자이너 시즌2
HTML
<!DOCTYPE html>
<html>
<head>
<title>HTML Document</title>
</head>
<body>
.
</body>
</html>
꿈꾸는데이터디자이너 시즌2
XML
<dailyBoxOfficeList>
<dailyBoxOffice>
<rank>1</rank>
<movieCd>20148048</movieCd>
<movieNm> </movieNm>
<openDt>2015-08-05</openDt>
<audiCnt>144263</audiCnt>
<audiAcc>10957701</audiAcc>
<scrnCnt>828</scrnCnt>
<showCnt>4262</showCnt>
</dailyBoxOffice>
</dailyBoxOfficeList>
꿈꾸는데이터디자이너 시즌2
데이터 가져오기 실습
HTML
꿈꾸는데이터디자이너 시즌2
https://ko.wikipedia.org/wiki/대한민국의_경제성장률
실습 데이터
http://score.sports.media.daum.net/record/baseball/kbo/prnk.daum
꿈꾸는데이터디자이너 시즌2
실습 도구 - 엑셀
꿈꾸는데이터디자이너 시즌2
실습 도구 - 엑셀
꿈꾸는데이터디자이너 시즌2
실습 도구 - 구글 스프레드시트
=IMPORTHTML("https://ko.wikipedia.org/wiki/대한민국의_경제성장률","table",1)
꿈꾸는데이터디자이너 시즌2
실습 도구 - 구글 스프레드시트
꿈꾸는데이터디자이너 시즌2
실습 도구 - 구글 스프레드시트
=IMPORTHTML(URL, 쿼리, 색인)
URL 원하는 데이터의 주소(http:// 등 프로토콜 포함)
쿼리 원하는 데이터가 어떤 형태인가 – 'table' / 'list'
색인 HTML 소스에서 해당 요소가 몇 번째 요소인가
꿈꾸는데이터디자이너 시즌2
http://score.sports.media.daum.net/record/baseball/kbo/prnk.daum
데이터 가져오기
꿈꾸는데이터디자이너 시즌2
실습 도구 - R
https://en.wikipedia.org/wiki/List_of_South_Korean_regions_by_GDP
꿈꾸는데이터디자이너 시즌2
실습 도구 - R
install.packages('rvest')
library(rvest)
url_wiki = 'https://en.wikipedia.org/wiki/List_of_South_Korean_regions_by_GDP'
wiki = html(url_wiki)
html_table(html_node(wiki, 'table'))
꿈꾸는데이터디자이너 시즌2
웹페이지를 긁어온다
'https://en.wikipedia.org/wiki/List_of_South_Korean_regions_by_GDP'
실습 도구 - R
긁어온 웹페이지를 html 구조로 파싱한다
<table> 태그를 찾는다
<table> 태그의 내용을 data.frame으로 변환
html()
html()
html_node('table')
html_table()
꿈꾸는데이터디자이너 시즌2
실습 도구 - R
꿈꾸는데이터디자이너 시즌2
실습 도구 - R (윈도우 사용자용)
library(XML)
library(RCurl)
daum_bball = 'http://score.sports.media.daum.net/record/baseball/kbo/prnk.daum'
xml_daum = getURL(daum_bball)
bball_table = readHTMLTable(xml_daum)$table1
names(bball_table) = repair_encoding(names(bball_table))
꿈꾸는데이터디자이너 시즌2
데이터 가져오기 실습
XML
꿈꾸는데이터디자이너 시즌2
library(rvest)
boxoffice = xml('boxoffice0831.xml', encoding='UTF-8')
daily = xml_node(boxoffice, 'dailyboxofficelist')
rank = xml_text(xml_nodes(daily, 'rank'))
movieNm = xml_text(xml_nodes(daily, 'movienm'))
audiCnt = xml_text(xml_nodes(daily, 'audicnt'))
daily_boxoffice = data.frame(rank, movieNm, audiCnt)
XML 데이터 가져오기
꿈꾸는데이터디자이너 시즌2
<boxOfficeResult>
<boxofficeType> </boxofficeType>
<showRange>20150831~20150831</showRange>
<dailyBoxOfficeList>
<dailyBoxOffice>
<rank>1</rank>
<movieNm> </movieNm>
<audiCnt>144263</audiCnt>
</dailyBoxOffice>
<dailyBoxOffice>
<rank>2</rank>
<movieNm> </movieNm>
<audiCnt>59994</audiCnt>
</dailyBoxOffice>
…………
</dailyBoxOfficeList>
</boxOfficeResult>
boxoffice0831.xml
xml()
꿈꾸는데이터디자이너 시즌2
xml_node('dailyboxofficelist')
<boxOfficeResult>
<boxofficeType> </boxofficeType>
<showRange>20150831~20150831</showRange>
<dailyBoxOfficeList>
<dailyBoxOffice>
<rank>1</rank>
<movieNm> </movieNm>
<audiCnt>144263</audiCnt>
</dailyBoxOffice>
<dailyBoxOffice>
<rank>2</rank>
<movieNm> </movieNm>
<audiCnt>59994</audiCnt>
</dailyBoxOffice>
…………
</dailyBoxOfficeList>
</boxOfficeResult>
꿈꾸는데이터디자이너 시즌2
<dailyBoxOffice>
<rank>1</rank>
<movieNm> </movieNm>
<audiCnt>144263</audiCnt>
</dailyBoxOffice>
<dailyBoxOffice>
<rank>2</rank>
<movieNm> </movieNm>
<audiCnt>59994</audiCnt>
</dailyBoxOffice>
…………
xml_nodes('rank')
<rank>1</rank>
<rank>2</rank>
<rank>3</rank>
<rank>4</rank>
......
<rank>10</rank>
꿈꾸는데이터디자이너 시즌2
xml_text()
<rank>1</rank>
<rank>2</rank>
<rank>3</rank>
<rank>4</rank>
......
<rank>10</rank>
c(1,2,3,4,...,10)
꿈꾸는데이터디자이너 시즌2
boxoffice0831_full.xml
[Week5]R_scraping

More Related Content

What's hot

Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7
주영 송
 

What's hot (10)

JavaSript Template Engine
JavaSript Template EngineJavaSript Template Engine
JavaSript Template Engine
 
Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7Mongo db 활용 가이드 ch7
Mongo db 활용 가이드 ch7
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
 
Docspin 에셋에 대해
Docspin 에셋에 대해Docspin 에셋에 대해
Docspin 에셋에 대해
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링
 
[나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기
[나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기[나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기
[나만의블로그개발하기] 03 글쓰고 읽기, 리스트 보기
 
First Step In Ajax Korean
First Step In Ajax KoreanFirst Step In Ajax Korean
First Step In Ajax Korean
 
mongoDB 3 type modeling in production
mongoDB 3 type modeling in productionmongoDB 3 type modeling in production
mongoDB 3 type modeling in production
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
 
테스트가 뭐예요?
테스트가 뭐예요?테스트가 뭐예요?
테스트가 뭐예요?
 

Viewers also liked

3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석
Saltlux Inc.
 
Python, web scraping and content management: Scrapy and Django
Python, web scraping and content management: Scrapy and DjangoPython, web scraping and content management: Scrapy and Django
Python, web scraping and content management: Scrapy and Django
Sammy Fung
 
모바일 코딩의 종류
모바일 코딩의 종류모바일 코딩의 종류
모바일 코딩의 종류
승제 이
 
구글
구글구글
구글
zerk87
 

Viewers also liked (20)

The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작
 
웹크롤러 조사
웹크롤러 조사웹크롤러 조사
웹크롤러 조사
 
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
꿈꾸는 데이터 디자이너 시즌2 교육 설명회 2부
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석
 
Python, web scraping and content management: Scrapy and Django
Python, web scraping and content management: Scrapy and DjangoPython, web scraping and content management: Scrapy and Django
Python, web scraping and content management: Scrapy and Django
 
모바일 코딩의 종류
모바일 코딩의 종류모바일 코딩의 종류
모바일 코딩의 종류
 
구글
구글구글
구글
 
[Week2]데이터읽어주는남자
[Week2]데이터읽어주는남자[Week2]데이터읽어주는남자
[Week2]데이터읽어주는남자
 
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
 
Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명
 
XPath for web scraping
XPath for web scrapingXPath for web scraping
XPath for web scraping
 
[시즌2, week3] R Basic
[시즌2, week3] R Basic[시즌2, week3] R Basic
[시즌2, week3] R Basic
 
Web Scraping with Python
Web Scraping with PythonWeb Scraping with Python
Web Scraping with Python
 
robot.txt와 meta tag를 이용한 크롤링 설정
robot.txt와 meta tag를 이용한 크롤링 설정robot.txt와 meta tag를 이용한 크롤링 설정
robot.txt와 meta tag를 이용한 크롤링 설정
 
[Http완벽가이드] 9장 웹로봇
[Http완벽가이드] 9장 웹로봇[Http완벽가이드] 9장 웹로봇
[Http완벽가이드] 9장 웹로봇
 
머신 러닝(Machine Learning)
머신 러닝(Machine Learning)머신 러닝(Machine Learning)
머신 러닝(Machine Learning)
 
Scraping the web with python
Scraping the web with pythonScraping the web with python
Scraping the web with python
 
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
정찬명 - CSS Selectors in HTML [WSConf. Seoul 2016/2017]
 

Similar to [Week5]R_scraping

Similar to [Week5]R_scraping (20)

피니엔진
피니엔진피니엔진
피니엔진
 
[week12] D3.js_Basic
[week12] D3.js_Basic[week12] D3.js_Basic
[week12] D3.js_Basic
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
Flamingo (FEA) Spark Designer
Flamingo (FEA) Spark DesignerFlamingo (FEA) Spark Designer
Flamingo (FEA) Spark Designer
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 
스마일게이트 서버개발캠프 - QuadCore - BTS Deck
스마일게이트 서버개발캠프 - QuadCore - BTS Deck스마일게이트 서버개발캠프 - QuadCore - BTS Deck
스마일게이트 서버개발캠프 - QuadCore - BTS Deck
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
Html5 게임 기술의 개요
Html5 게임 기술의 개요Html5 게임 기술의 개요
Html5 게임 기술의 개요
 

More from neuroassociates

More from neuroassociates (20)

[Week20] D3.js_Mapping
[Week20] D3.js_Mapping[Week20] D3.js_Mapping
[Week20] D3.js_Mapping
 
[week17] D3.js_Tooltip
[week17] D3.js_Tooltip[week17] D3.js_Tooltip
[week17] D3.js_Tooltip
 
[week16] D3.js_Transition
[week16] D3.js_Transition[week16] D3.js_Transition
[week16] D3.js_Transition
 
[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자
 
[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart
 
[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)
 
[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis
 
[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart
 
[Week12] D3.js_Basic2
[Week12] D3.js_Basic2[Week12] D3.js_Basic2
[Week12] D3.js_Basic2
 
[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자
 
[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자
 
[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet
 
[week9]R_statics
[week9]R_statics[week9]R_statics
[week9]R_statics
 
[Week8]R_ggplot2
[Week8]R_ggplot2[Week8]R_ggplot2
[Week8]R_ggplot2
 
[week7]R_Wrangling(2)
[week7]R_Wrangling(2)[week7]R_Wrangling(2)
[week7]R_Wrangling(2)
 
[week6]R_Wrangling
[week6]R_Wrangling[week6]R_Wrangling
[week6]R_Wrangling
 
[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자
 
[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자
 
[Week4] Google refine
[Week4] Google refine[Week4] Google refine
[Week4] Google refine
 
[Week3]데이터읽어주는남자
[Week3]데이터읽어주는남자[Week3]데이터읽어주는남자
[Week3]데이터읽어주는남자
 

[Week5]R_scraping