크롤링 프로젝트 1
1. 스크레핑
- 웹 사이트에 있는 특정 정보를 추출하는 기술
2. 크롤링
- 프로그램이 웹 사이트를 정기적으로 돌며 정보를 추출하는 기술
--------------------------------------------------------------------------------------
스크레핑 과정
1. 대상 URL 할당 (URL 지정)
2. 웹 문서 추출 : (R) htmlParser()
3. 특정 태그의 Data 추출 : XPathSApply()
4. Data 정제 (불필요한 특수문자, 공백문자 제거)
: Gsub('\n', ' ', name) #name에서 '\n' 문자를 제거한다.
5. Data 프레임화 : data.frame()
6. Data 정렬 : Format()
R스크립트 사용
R언어에서 Library(XML, HTTR) 사용
XML 문서나 HTML 문서를 만들거나 읽을 때 사용된다.
Xpath(XML PATH Language) 기술을 포함한다.
R언어 사용 시 Warning in (function (file = "", n = NULL, text = NULL, prompt = "?", keep.source = getOption("keep.source"), :
argument encoding="UTF-8" is ignored in MBCS locales
라는 에러가 날 경우 아래 코드를 실행해주면 에러가 사라진다.
Sys.setlocale(category = 'LC_ALL', locale = 'English_United States.1252')
R 코드
# 스크레핑1
library(httr)
library(XML)
url <- "https://darkgraycat.tistory.com/"
doc <- htmlParse(rawToChar(GET(url)$content),encoding = "utf-8")
# //는 중간 단계를 건너 뛴다.
prodName <- xpathSApply(doc, "//div[@id='main']//h2[@class='post_title']",xmlValue)
prodName <- gsub(" ","",prodName)
#prodName 제목
prodDate <- xpathSApply(doc, "//div[@id='main']//li[@class='post_date']",xmlValue)
prodDate <- gsub(" ","",prodDate)
#prodDate 날짜
#프레임화 data.frame
df <- data.frame(name=prodName, date=prodDate)
#정렬 format
df$name <-format(df$name, justfy="left")
df$date <-format(df$date, justfy="right")
df
#프레임화 과정에서 utf-8로 인코딩한게 깨진다..
prodName <- xpathSApply(doc, "//div[@id='main']//h2[@class='post_title']",xmlValue)
[1] //div[@id='main']
범위를 설정해준 후
[2] //h2[@class='post_title']
찾을 값을 설정해준다.
html의 태그를 잘 봐야한다
제목은 h2인데 날짜는 li라 왜 안되지 하고 시간을 허비함