import-txt-csv-into-r-base-functions

R(아르)로 네이버 쇼핑 상품 DB를 가져와 구글 쇼핑 상품 피드(DB) 만들기

네이버 쇼핑 상품 DB를 가져와 구글 쇼핑 상품 피드(DB) 만들기에 관한 시도는 Java로 시도하였으나 완성하지 못한채 다시 R(아르)로 시도해 봅니다. Java, JavaScript 그리고 R을 자유롭게 다룰 수 있는 언젠가에는 꼭 완성할 수 있다는 신념을 가지고 계속 시도해 봅니다.

 

네이버 쇼핑 상품 DB를 가져와 구글 쇼핑 상품 피드(DB) 만들기의 기본 과정(구조)은 아래의 게시글을 참조하세요.

JAVA로 네이버 쇼핑 상품 DB를 가져와 구글 쇼핑 상품 피드(DB) 만들기

 

TXT 파일 블러오기 / 저장하기

R(아르)를 이용하여 csv 불러오기와 저장하기는 아래와 같이 너무나 간단합니다.( 혹시 부족한 부분이 있으시면  R에서 데이터 불러오기 / read.table / read.csv 을 참조하세요. )

 

불러오기

my_data <- read.delim(“https://www.copy114.kr//wp-content/uploads/ep_all.txt“, header = T, fileEncoding = “utf-8”)

text는 read.delim () 함수,  csv는 read.csv () 함수 그리고 테이블은 read.table () 함수를 사용 하여 웹에서 파일을 가져올 수 있습니다. 네이버 쇼핑 DB는 text file(*.txt)이므로 read.delim () 함수로 파일을 가져오시면 됩니다.

  • 파랑색 url 부분에 네이버 상품 DB 의 경로를 넣어주시면 웹에서 바로 가져오기가 가능합니다.  
  • header = T(TRUE)로 하게 되면 my_data에 변수명이 함께 불려옵니다. 변수가 첫번째 열의 값으로 입력되지 않고 변수로 값이 들어옵니다.
  • invalid multibyte string 에러 문제 : fileEncoding = “utf-8”

fileEncoding = “utf-8 는 file을 읽어들일때 utf-8의 형택로 읽어들이라는 의미입니다. 네이버 쇼핑 DB 는 utf-8 인코딩되어 있으므로 디코딩할때 반드시 utf-8로 디코딩해주셔야 합니다.

> my_data <- read.delim(“d:/easy_r/ep_all.txt”)
Error in type.convert.default(data[[i]], as.is = as.is[i], dec = dec, :
invalid multibyte string at ‘<ec><86><8c>紐⑦뭹 <ed>봽由고꽣 <ec>닔由щ<b6>€<ed>뭹 <ec>뼇硫닿린

위에 “<ec><86><8c>~”는 네이버 상품 DB에서 상품이 위치한 링크주소(url)의 시작부분입니다. URL을 한글로 표시되게 설정하여 URL 이 “https://www.copy114.kr/shop/%EC%86%8C%EB%AA%A8%ED%92%88/%ED%94%84%EB%A6%B0%ED%84%B0-%EC%88%98%EB%A6%AC%EB%B6%80%ED%92%88-%EC%86%8C%EB%AA%A8%ED%92%88/%EC%96%91%EB%A9%B4%EA%B8%B0/hp8710-8210-7720-7740-8720-%EC%82%BC%EC%84%B1-j3560-3520-%EC%96%91%EB%A9%B4%EA%B8%B0-%EA%B8%89%EC%A7%80%EB%A1%A4%EB%9F%AC4%EA%B0%9C-1%EC%84%B8%ED%8A%B8/” 같이 생소하게 표시됩니다.

R-utf8 디코딩

다수(multibyte)의 유효하지 않은(invalid)의 원인은 utf-8이므로 “fileEncoding = “utf-8″을 추가해주시면 문제는 간단히 해결됩니다. 

 

불러들인 데이터 확인하기

View(my_data)

view()함수를 사용하면 데이터를 잘 가져왔는지 바로 확인할 수 있습니다.

R의 view() 함수로 데이터가 잘 들어왔는지 확인하기

str() 함수를 이용하여 각각의 변수들의 속성값들(int(정수), chr(문자),  logi )을 확인할 수 있고 이런 속성값들은 나중에 구글 쇼핑 DB로 전환할때 유용하게 사용할 수 있습니다.

R의 str() 함수를 이용하여 변수들의 속성값 확인하기

저장하기

write.csv(df_csv_exam, file = “d://easy_r/naver_shopping_db.csv”)

 

네이버 쇼핑 DB를 구글 쇼핑 DB로 변환하기

 

## 1. 백업본을 만들고 여기에다 작업하기
new_data <- raw_data #구글쇼핑db를 만들기 위해 임시 작업할 복사본데이터프레임으로 new_data 프레임을 만듦

## 2. 네이버 쇼핑 DB중 category_name1열을 구글 쇼핑 DB의 product type열로 변경하고 값 넣어주기
new_data$producttype #new_data$producttype 변수를 만들어 줍니다.
new_data$producttype <- new_data$category_name1 #네이버 쇼핑 DB중 category_name1열을 new_data$producttype열에넣어줍니다.
names(new_data)[names(new_data) == “producttype”] <- c(“product type”) #category_name1 을 product type 으로 변경합니다. 그런데 R은 변수에 “product type”처럼 빈칸을 허용하지 않습니다. https://bpapa.tistory.com/12 참조하여 좌측과 같이 코딩해주시면 빈칸을 집어넣을 수 있습니다.

## 3.구글 쇼핑 DB의 shipping(배송비) 열을 만들고 기본 배송비 넣어주기
new_data$shipping ##필수사항인 배송비를 의미하는 shipping 변수를 만듭니다.
new_data$shipping <- “KR:::3300 KRW” ##배송비로 3,300원을 모두 넣어줍니다. 이때 KR:::3300 KRW 형식을 유지하세요.
View(new_data)

 

참고자료 :  1.  Reading Data From TXT|CSV Files: R Base Functions

2. R에서 데이터 읽어들일 때 인코딩 조작 방법

  1. R에서 데이터 불러오기 / read.table / read.csv

 

featured image 출처 :  Reading Data From TXT|CSV Files: R Base Functions