Google 스프레드시트를 활용한 웹 스크래핑

IMPORTXML 및 IMPORTHTML을 사용하여 Google 스프레드시트로 웹 스크래핑을 간소화하고 웹사이트에서 데이터를 쉽게 추출하세요.
2 분 읽기
Web Scraping With Google Sheets

웹 스크래핑은 스크립트나 자동화 소프트웨어 도구를 사용하여 웹사이트에서 콘텐츠와 데이터를 추출하는 과정입니다. 추출된 정보는 일반적으로 원시 파일이나 CSV와 같이 더 유용한 형식으로 내보내져 쉽게 활용할 수 있습니다.

웹 스크래핑 작업 흐름을 간소화하려는 경우Google 스프레드시트가해결책이 될 수 있습니다. 구글 스프레드시트는 웹사이트에서 구조화된 데이터나 표 형식의 데이터를 추출하고 분석하거나 시각화하는 데 탁월한 인기 데이터 관리 도구입니다. 예를 들어, 이커머스 사이트에서 제품 상세 정보와 가격을 추출하거나 비즈니스 디렉토리에서 연락처 정보를 수집하는 데 활용할 수 있습니다. 또한 소셜 미디어 참여도 추적이나 캠페인 효과를 측정하기 위한 대중 감정 분석을 수행하는 데도 유용합니다.

이 튜토리얼에서는 웹 스크래핑을 위해 Google 스프레드시트를 설정하고 사용하는 방법을 배울 수 있습니다.

Google 스프레드시트 설정하기

Google 스프레드시트로 웹 스크래핑을 시작하려면https://sheets.google.com로이동하여+버튼을 클릭해 새 Google 스프레드시트를 생성하세요:

Creating a new Google Sheet

이 튜토리얼에서는Books to Scrape웹사이트에서 도서 가격 정보를 스크래핑하는 방법을 보여줍니다. 하지만 다음 URL과 쿼리를 수정하여 다른 웹사이트를 사용할 수도 있습니다.

Google 스프레드시트 수식 이해하기

Google 스프레드시트는 웹 스크래핑을 포함한 다양한 작업을 수행할 수 있는 수많은셀 수식을지원합니다. 몇 가지 수식의 작동 방식을 살펴보겠습니다.

IMPORTXML

IMPORTXML함수를 사용하면 구조화된 데이터를 쿼리하여 Google 스프레드시트로 가져올 수 있습니다. XML, HTML, CSV, TSV 파일 형식을 지원합니다. 함수의 구문은 다음과 같습니다:

=IMPORTXML(url, xpath_query)

이 함수는 지정된 웹 URL에서 데이터를 가져오고XPath로케이터를 사용하여 웹 페이지에서 관련 요소를 찾습니다. 예를 들어, Google 스프레드시트 셀에 다음 수식을 추가하면Books to Scrape웹사이트에서H1제목을 가져올 수 있습니다:

=IMPORTXML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "//h1")

처음 사용할 때 Google 스프레드시트는 타사 웹사이트에서 데이터를 가져오기 전에 액세스 권한을 활성화하라는 메시지를 표시합니다:

Enabling access before fetching data from 3rd party websites

‘접근 허용’을 클릭하면 Google 스프레드시트가 해당 셀 값을 웹 페이지의 H1 헤딩으로 해석하여 기본값으로 설정합니다.

IMPORTHTML

IMPORTHTML 함수는 HTML 페이지의 테이블이나 목록에서 데이터를 가져올 수 있게 합니다. 함수의 구문은 다음과 같습니다:

=IMPORTHTML(url, query, index)

이 함수는 지정된 쿼리에 따라 url의 데이터를 시트로 가져옵니다. 쿼리 속성은 가져올 데이터 유형에 따라 목록 ( list) 또는 테이블(table) 로 설정할 수 있습니다. 인덱스는 1부터 시작하며 가져올 테이블 또는 목록을 결정합니다. 예를 들어, 다음 수식을 사용하여 Books to Scrape에서 도서 목록을 가져올 수 있습니다:

=IMPORTHTML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "list", 2)

이 수식은 현재 셀에 책 목록을 출력합니다. 다음과 같이 표시됩니다:

List of books outputted from the `IMPORTHTML` formula

보시다시피IMPORTXMLIMPORTHTML수식은 사용하기 쉬우며 간단한 쿼리를 통해 웹 페이지에서 데이터 스크래핑을 시작할 수 있게 해줍니다. 더 복잡한 사용 사례에 대해서는 Excel에서 VBA와 Selenium을 활용한 웹 스크래핑 방법을 설명하는 이 가이드를 참고하세요.

IMPORTXML을 사용한 데이터 추출

이전 섹션에서는 관련 XPath 속성을 지정하여 페이지 제목을 가져오는IMPORTXML의기본 사용법을 배웠습니다. XPath 속성은 매우 강력하여 계층 구조와 상관없이 웹 페이지의 모든 요소를 탐색할 수 있게 합니다. 다음 섹션에서는IMPORTXML을사용하여‘Books to Scrape’페이지의모든 책 제목, 가격, 평점을 가져올 것입니다.

시작하기 위해 Google 스프레드시트에 제목(Title), 가격(Price), 평점(Rating) 열을 추가하세요:

Add columns to Google Sheets

Books to Scrape에서 책 제목을 가져오려면 해당 XPath 위치가 필요합니다. 이는 브라우저의 검사 도구( Inspect )를 사용하여 찾을 수 있습니다. 책 제목의 XPath를 찾으려면 첫 번째 책 제목을 마우스 오른쪽 버튼으로 클릭하고 ‘검사(Inspect)’를 클릭하세요. 그런 다음 ‘복사(Copy)’ > ‘XPath’를 클릭하여 해당 XPath 로케이터를 복사합니다:

Find XPath for the book title

첫 번째 책 제목의 XPath는 앵커 태그(a)에 해당하며 다음과 같은 형식입니다:

//*[@id="default"]/div/div/div/div/section/div[2]/ol/li[1]/article/h3/a

목록의 모든 책에 대해 책 제목이 올바르게 가져오도록 XPath를 약간 수정해야 합니다:

  • XPath 경로에 포함된li[1]은 첫 번째 책이 선택되었음을 나타냅니다. 모든 요소를 가져오려면 이를li로대체하세요.
  • a태그의 내부 콘텐츠에는 잘린 책 제목이 포함되어 있지만,a태그 자체에는 전체 책 제목이 담긴title속성이 있습니다. XPath 내a를a/@title로수정하여 title 속성을 사용하도록 합니다.
  • 수식 내 이스케이프 문제를 방지하려면 XPath 내 모든 큰따옴표를 작은따옴표로 교체하세요.

XPath를 조정한 후, 업데이트된 XPath를 사용하여 Google 스프레드시트의 A2 셀에 다음 수식을 추가하세요:

=IMPORTXML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "//*[@id='default']/div/div/div/div/section/div[2]/ol/li/article/h3/a/@title")

시트는 웹 페이지에서 데이터를 가져와 다음과 같이 행을 업데이트합니다:

Import book title using `IMPORTXML` formula

다음으로 가격에 대한 XPath를 구성하여 Google 스프레드시트의 B2 셀에 추가하세요:

=IMPORTXML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "//*[@id='default']/div/div/div/div/section/div[2]/ol/li/article/div[2]/p[1]")

마지막으로 평점의 XPath를 찾아 Google 스프레드시트의 C2 셀에 추가합니다:

=IMPORTXML("https://books.toscrape.com/", "//*[@id='default']/div/div/div/div/section/div[2]/ol/li/article/p/@class")

시트의 최종 데이터는 다음과 같습니다:

Scraped book information using `IMPORTXML`

평가열에는별점 3개또는별점 4개가 표시됩니다. Google 스프레드시트에서는 아직XPath 2.0을지원하지 않으므로 출력을 단순화하기 위해 데이터를 조작할 수 없습니다.

복잡한 웹 페이지 처리

Google 스프레드시트는 간단한 스크래핑 작업에는 적합하지만, 대상 웹사이트에 동적 콘텐츠나 페이지네이션이 포함되거나 클릭 상호작용이 필요한 경우 스크래핑이 어려워질 수 있습니다. 예를 들어, 웹 페이지가 JavaScript를 사용하여 비동기적으로 콘텐츠를 로드하는 경우, Google 스프레드시트의IMPORTXMLIMPORTHTML수식은 정적 웹 페이지만 지원하므로 해당 데이터 추출이 불가능합니다. 마찬가지로 콘텐츠가 클릭, 입력, 스크롤과 같은 사용자 상호작용에 의존하는 경우에도 이 수식들은 데이터를 스크래핑할 수 없습니다. 동적 콘텐츠를 스크래핑하려면 Selenium과 같은 헤드리스 브라우저를 사용하는 스크립트를 작성할 수 있습니다.

Google 스프레드시트는 페이지 분할 스크래핑 작업도 자동으로 처리할 수 없습니다. 마지막 행 뒤에 업데이트된 URL과 함께 IMPORTXML 수식을 수동으로 추가할 수는 있지만, 이 방법은 모든 페이지마다 과정을 반복해야 하므로 확장성이 떨어집니다.

동적 콘텐츠 처리나 대용량 데이터와 같은 고급 사용 사례를 원한다면 효율적인 데이터 추출을 위해 Bright Data 제품을 고려해 보세요. Bright Data는 모든 데이터 추출 작업을 위한 통합 웹 스크래핑 API를 제공하며 프록시, CAPTCHA, 사용자 에이전트와 같은 복잡한 문제를 내부적으로 처리합니다. 이 API는 대량 요청, 파싱, 유효성 검사를 처리하여 더 빠르게 배포하고 확장할 수 있게 합니다. 또한LinkedIn,Zillow 등 인기 웹사이트의 사전 구축된 대규모 데이터셋을제공하여 기존 워크플로에 통합할 수 있으므로 스크래핑 스크립트 유지 관리의 번거로움을 줄여줍니다.

Google 스프레드시트에서 데이터 자동 새로고침 설정하기

가격이나 소셜 미디어 참여도 추적과 같은 일부 스크래핑 작업의 경우, 분석 및 의사 결정을 위한 정확한 데이터에 접근할 수 있도록 주기적으로 스크래핑된 데이터를 자동으로 새로 고쳐야 합니다.

Google 스프레드시트에서 계산 간격을 설정하려면 파일 > 설정을 클릭한 후 계산 탭으로 이동하기만 하면 됩니다:

Open Google Sheets Settings

그런 다음 계산 간격을 1분 또는 1시간으로 업데이트할 수 있습니다. 예를 들어, 여기에서는 데이터가 매분 자동으로 새로 고쳐지도록 재계산 설정을 ‘변경 시’ 및 ‘매분’으로 업데이트했습니다:

Configure automatic data refresh in Google Sheets

Google 스프레드시트의 자동 새로고침 옵션은 시간당 또는 매분 단위로만 선택할 수 있어 새로고침 빈도나 트리거를 구성하는 데 유연성이 제한적입니다. 더 많은 유연성을 원하신다면, Bright Data는 JSON, CSV, Parquet 등 다양한 파일 형식으로 깨끗하고 검증된 최신 데이터 세트를 제공합니다. 따라서 방대한 인프라 유지가 필요한 대규모 스크래핑 작업에 이상적입니다.

모범 사례 구현 및 문제 해결

스크래핑 효율을 높이려면 추출할 데이터를 선별적으로 선택하세요. 불필요한 데이터를 스크래핑하려 하면 프로세스가 느려지고 대상 웹사이트에 부하가 증가할 수 있습니다.

대량의 데이터를 스크래핑하려는 경우, 요청 사이에 인위적인 지연을 추가하고 비수기 시간에 작업을 실행하여 웹사이트가 예상치 못한 트래픽으로 과부하되지 않도록 하십시오. 과도한 트래픽은 IP 차단이나 속도 제한으로 이어져 스크래핑 작업을 계속할 수 없게 할 수 있습니다. 차단되지 않고 웹사이트를 스크래핑하는 방법에 대해 자세히 알아보세요.

IP 차단 외에도, 사용자에게CAPTCHA 인증을요구하는 것은 웹사이트가 콘텐츠 접근을 제한하기 위해 사용하는 또 다른 일반적인 봇 방지 기술입니다. 사용자가 인간임을 확인할 때까지 콘텐츠 접근을 제한하는 방식입니다. IP 로테이션과 자동 CAPTCHA 해결 기능이 필요한 고급 스크래핑 작업에는Bright Data의 주거용 프록시를사용하는 것을 고려해 보세요.

데이터 스크래핑 전에 반드시 웹사이트 이용 약관을 검토하여 준수 여부를 확인해야 합니다. 스크립트는 웹사이트와의 상호작용 시robot.txt지침을 따라야 합니다. 웹 스크래핑을 위한robot.txt규칙 사용 방법에 대한 자세한 내용은이 가이드를참조하세요.

결론

Google 스프레드시트는 동적 콘텐츠, 숨겨진 요소 또는 페이지네이션이 포함되지 않은 정적 웹사이트에서 데이터를 스크래핑하는 데 적합합니다. 본 문서에서는 사전 스크립팅 경험 없이도 IMPORTXMLIMPORTHTML 수식을 사용하여 데이터 추출 작업을 쉽게 자동화하는 방법을 배웠습니다.

동적 콘텐츠나 대량의 데이터가 포함된 복잡한 스크래핑 작업의 경우,Bright Data는JSON, CSV, NDJSON 등 다양한 형식의 웹 데이터 스크래핑을 위한 사용하기 쉽고 유연하며 확장 가능하고 성능이 우수한 API를 제공합니다. 내부적으로는 IP 및 사용자 에이전트 로테이션, CAPTCHA, 동적 콘텐츠 처리 등 스크래핑의 복잡성을 관리합니다. 웹 스크래핑을 한 단계 업그레이드할 준비가 되셨다면 최고의 웹 스크레이퍼 API를 사용해 보세요. 

지금 무료 체험판에 가입하여 데이터 워크플로우 최적화를 시작하세요!