Ordelio

웹 페이지 표를 CSV 파일로 저장하는 방법

CSV 파일은 모든 스프레드시트 프로그램과 데이터베이스에서 읽을 수 있는 일반 텍스트입니다. 웹 표를 CSV로 가져오는 것은 쉽지만, 문자가 깨지거나 구분문자가 잘못되거나 앞의 0이 사라지지 않도록 가져오는 것은 까다롭습니다. 4가지 방법과 각 방법의 한계점을 알아봅니다.

1. 복사하여 Excel에 붙여넣고 다른 이름으로 저장하기

표를 선택해 복사한 뒤 빈 Excel 시트에 붙여넣고, [파일] 메뉴에서 [다른 이름으로 저장]을 선택한 다음 파일 형식으로 CSV UTF-8을 지정하세요.

장점: Excel이 이미 열려 있는 상태에서 한 번만 처리하면 되는 작은 표에 적합합니다.

단점: CSV UTF-8 대신 일반 CSV 형식을 선택하면 Windows 코드 페이지에 포함되지 않는 모든 문자(악센트 기호, 키릴 문자, 중국어 등)가 물음표로 깨집니다. 또한 Excel은 Windows 지역 설정에 지정된 구분문자를 사용하기 때문에, 많은 유럽 시스템에서는 "쉼표로 분리된" 파일이 실제로는 세미콜론으로 저장되어 쉼표를 기대하는 프로그램에서 읽을 때 문제가 생길 수 있습니다. 붙여넣을 때 맨 앞의 0이 사라지거나(예: 01234가 1234로 바뀜) 1-2 같은 값이 날짜로 자동 변환될 수 있으며, 표 주변의 텍스트가 함께 복사될 수도 있습니다.

2. Google 스프레드시트: 붙여넣은 후 다운로드하기

표를 Google 스프레드시트에 붙여넣은 다음, [파일] 메뉴를 열고 [다운로드]로 이동하여 [쉼표로 구분된 값(.csv)] 형식을 선택하세요.

장점: 브라우저만 있으면 어떤 컴퓨터에서든 사용할 수 있으며 Excel이 필요 없고 파일이 항상 UTF-8로 인코딩됩니다.

단점: 파일이 항상 쉼표를 사용하므로, 소수점에 쉼표를 사용하는 지역의 Excel에서 파일을 더블클릭해 열면 열이 제대로 나뉘지 않을 수 있습니다. 전체 파일이 아니라 현재 보고 있는 시트만 다운로드됩니다. Excel과 마찬가지로 스프레드시트에 붙여넣을 때 일부 값이 날짜나 숫자로 변환될 수 있습니다.

3. Python: pandas.read_html

이미 Python을 사용 중이라면 pandas를 이용해 페이지의 모든 표를 읽어 CSV로 저장할 수 있습니다.

pandas.read_html("https://example.com/page")[0].to_csv("table.csv", index=False)

괄호 안의 숫자는 페이지에서 표의 순서를 나타냅니다(첫 번째 표는 0). pandas와 lxml이 설치되어 있어야 합니다.

장점: 매주 같은 페이지를 처리하거나 수백 개의 페이지를 스크립트로 일괄 처리할 때 유용합니다.

단점: 브라우저가 아닌 스크립트 요청이라는 이유로 일부 사이트에서 403 오류를 반환하며 차단할 수 있으므로, 페이지를 직접 다운로드하여 HTML을 pandas에 전달해야 할 수도 있습니다. 로그인 뒤에 숨겨진 페이지나 JavaScript가 로드 후 동적으로 생성하는 표는 읽지 못합니다. [1] 같은 각주 표시가 헤더와 셀 값에 그대로 남으며, 열에 빈 셀이 포함되는 순간 정수 데이터가 8021407192.0 같은 실수 형태로 바뀔 수 있습니다.

4. 브라우저 확장 프로그램: 보고 있는 페이지에서 클릭 한 번으로 해결

확장 프로그램은 브라우저에 표시되는 그대로의 페이지에서 작동하므로 로그인 후의 페이지나 JavaScript로 만들어진 표에서도 문제없이 작동합니다. 저희가 직접 제작한 Ordelio 테이블 복사(무료, 행 제한 없음)를 사용해 보세요.

  1. 페이지를 열고 확장 프로그램 아이콘을 클릭합니다(또는 Alt+Shift+Y 누름). 페이지의 모든 표가 크기순으로 나열되며, 마우스를 올리면 화면에 강조 표시됩니다.
  2. CSV를 누릅니다. 브라우저가 해당 표가 담긴 파일을 다운로드합니다. Excel에서 올바로 인식할 수 있는 마크가 포함된 UTF-8 형식으로 저장되므로 문자가 깨지지 않으며, 언어 설정에서 소수점에 쉼표를 사용하는 지역에서는 구분문자가 세미콜론으로 자동 지정됩니다(옵션에서 쉼표, 세미콜론, 탭 중 하나로 강제 지정할 수도 있습니다).

또한 [1] 같은 각주 표시를 제거하고, 병합된 셀을 반복 확장하여 열 정렬을 유지하며, 01234 같은 코드를 페이지에 있는 그대로 파일에 기록합니다(파일을 여는 스프레드시트 프로그램에서 필요에 따라 숫자로 변환할 수 있습니다).

단점: 현재 화면에 있는 내용을 그대로 저장하므로 여러 페이지로 나뉜 표는 페이지별로 파일을 각각 다운로드해야 하며, 스크립트처럼 스스로 파일을 주기적으로 업데이트할 수는 없습니다.

Microsoft Edge용 Ordelio 테이블 복사 받기 Chrome 및 Firefox 버전: 검토 중.

어떤 방법을 선택해야 할까요

Excel 다른 이름으로 저장Google 스프레드시트pandas확장 프로그램
로그인 뒤에 숨겨진 페이지예(복사를 통해)예(복사를 통해)아니요예
문자 깨짐 없는 저장CSV UTF-8 형식만 해당예예예
원하는 구분문자 선택아니요(Windows 설정 따름)아니요(항상 쉼표)예(매개변수 사용)예(옵션 제공)
한 번에 수백 개 페이지 처리아니요아니요예아니요
새 페이지 하나를 처리하는 시간약 1분약 1분처음 실행 시 몇 분몇 초

요약하자면, 공개 페이지에서 매주 실행되는 자동화 스크립트에는 pandas를 사용하세요. 읽고 있는 페이지(특히 로그인 뒤에 있는 페이지)에서 일회성으로 데이터를 저장할 때는 브라우저 확장 프로그램을 사용하는 것이 좋습니다.

이 방법들 중 어느 것으로도 깔끔하게 처리할 수 없는 표를 발견하셨나요? 알려주세요. 보내주시는 모든 피드백을 꼼꼼히 읽고 있습니다.