inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

현존 최강 크롤링 기술: Scrapy와 Selenium 정복

csv 포맷의 한글 깨짐 현상

해결된 질문

721

Jake

작성한 질문수 2

1

강의를 쉽게 잘 설명해 주셔서 잘 듣고 있습니다.

맥에서 강의를 듣고 있습니다.

크롤러를 실행해서 csv파일을 만들었는데, 일반 텍스트에디터나, Sublime Text에서 

파일을 열었을 때는 정상적으로 나오는데 엑셀로 열 경우에 한글이 깨져서 나타납니다.

settings.py에서 FEED_EXPORT_ENCODING='utf-8'로 했구요.

그래서 혹시나 해서 'utf-8-sig'로 변경했더니 정상적으로 나옵니다.

utf-8 with BOM의 경우 파일의 앞 부분에 특수문자가 삽입되는 걸로 알고 있는데요.

uft-8-sig 로 만든 텍스트 파일이 utf-8로 생성된 파일과 다른 점,

그리고, 향후에 프로그램으로 읽어들여 처리하는 과정에서 문제가 될 소지는 없는지요?

 

감사합니다.

selenium 웹-크롤링 scrapy

답변 1

1

잔재미코딩 DaveLee

안녕하세요. 사실 저조차도 크롤링 데이터는 항상 데이터베이스에 저장하곤 하기 때문에, 엑셀에서 사용한 적이 없어서요.

settings.py에서 FEED_EXPORT_ENCODING='utf-8' 으로 설정시, 엑셀 프로그램에서 한글이 깨지는 점을 인지하지 못했습니다.

utf-8 이 표준이긴 한데, MS사에서 utf-8의 다양한 버전을 체크하기 위해, 파일 최상단에 특정한 데이터(Byte Order Mark, BOM)를 붙입니다. utf-8-sig 는 utf-8 with signature 의 약자로 보시면 되구요. 상단에 0xef0xbb0xbf 데이터를 붙입니다. 이 signature를 기반으로 엑셀 프로그램이 유니코드를 적절히 변환해서 화면에 표시하는데요. utf-8 으로 설정하면 signature 가 없기 때문에 유니코드를 적절히 인지하지 못해서, 엑셀 프로그램에서 한글이 깨지는 것입니다.

엑셀 프로그램이 바뀔 것 같지는 않지만, 일반적인 표준을 지원하는 프로그램들은 특별한 이슈는 없긴 합니다. 

가볍게 utf-8을 기본으로 사용하되 엑셀 프로그램을 사용해야 한다든지, 혹시라도 특별한 프로그램에서 데이터를 활용해야 하는데,한글이 깨질 경우만 utf-8-sig 로 설정을 변경해서 활용해보시는 것이 더 좋을 것 같습니다.

감사합니다.

 

 

 

 

코딩을 잘 따라 한 것 같은데 오류가 발생하는 것 같습니다

0

626

1

scrapy를 jupyter 환경에서 할 수 있나요

0

360

1

[실전 크롤링: scrapy 크롤링 팁] 질문있습니다.

0

313

1

[실전 크롤링: 지마켓 크롤링하며, scrapy 실전 활용법 익히기1] 5분50초쯤 질문

0

221

1

[강력/최신 크롤링 기술: Scrapy 로 지마켓 크롤링하기1] 관련 질문

0

279

1

xml을 parsing할때 <을 &lt; 로 인식합니다.

0

334

1

pipelines.py에서 process_item내에서 print문이 작동을 하지 않네요 ㅠ

0

292

3

PhantomJS 문의

0

294

1

selenium 문의

0

329

1

브라우저 제어해서 크롤링하기 - 처음강의 마지막부분 문의

0

3004

1

on error 해결 방법 질문

0

356

1

[팁] 윈도우 cmd 커맨드

0

347

1

[팁]Chrome User Agent 아는법

0

327

1

실전 크롤링: 브라우저를 제어해서 트위터 사이트 로그인 하기 질문

0

254

1

동영상 강의 만드실 때 사용한 툴을 알려주실 수 있을까요?

0

237

1

CSS Selector 에서 질문이 있습니다.

0

435

2

pip install scrapy 오류

0

483

1

셀레니움 실행불가

0

1577

1

실전 크롤링: XPATH와 Selenium 활용해서 페이스북 로그인 하기 에서 질문이 있습니다.

0

226

1

언제 get_text()를 사용하고 또 언제 .text를 사용하나요?

0

287

1

강의교안자료 받을수있을까요?

0

263

1

[강의 9:27관련 질문] price, title 열 위치

0

160

1

div에 있는 클래스가 2개이면 어떻게 하나요?

0

368

1

css 셀렉터에 대해 질문이 있습니다.

0

147

1