SerpApi를 활용한 Yelp 전체 메뉴 스크래핑 튜토리얼: 빠르고 간단한 방법

Tutorial of how to scrape Yelp Full Menu, fast and simple

작성자
발행일
2025년 12월 09일

핵심 요약

  • 1 SerpApi의 Yelp Place Scraper API를 활용하여 Yelp 레스토랑의 전체 메뉴 정보를 효율적으로 스크래핑하는 방법을 상세히 설명합니다.
  • 2 `full_menu` 및 `menu_name` 매개변수 설정을 통해 메뉴 존재 여부 확인 및 특정 메뉴 데이터를 선택적으로 수집하는 과정을 다룹니다.
  • 3 SerpApi 계정 설정부터 Ruby 클라이언트 라이브러리를 사용한 API 연동까지의 실질적인 구현 단계를 제시합니다.

도입

Yelp은 7백만 개 이상의 지역 비즈니스 및 레스토랑 정보를 제공하는 방대한 플랫폼으로, 특히 레스토랑의 전체 메뉴 데이터는 시장 연구원, AI 에이전트 및 챗봇에게 매우 귀중한 정보원입니다. 본 문서는 SerpApi의 Yelp Place Scraper API를 활용하여 Yelp 레스토랑의 전체 메뉴를 효과적으로 스크래핑하는 방법을 안내합니다. 응답 필드를 통해 메뉴 존재 여부를 확인하고, 특정 메뉴를 지정하여 상세 데이터를 수집하는 과정을 단계별로 설명합니다.

Yelp 전체 메뉴 스크래핑 절차

Yelp Place 페이지에서 “Full Menu” 버튼이 있는 레스토랑은 전체 메뉴 페이지를 제공합니다. SerpApi의 응답에서 response[:place_results][:full_menu] 필드가 존재하면 해당 레스토랑이 전체 메뉴를 가지고 있음을 나타냅니다. 전체 메뉴를 스크래핑하기 위해서는 요청 매개변수 full_menutrue로 설정하여 full_menu_results를 확보할 수 있습니다.

full_menu_results 내 주요 정보

full_menu_results에는 메뉴 이름, 제목, 인기 메뉴 항목(링크 포함), 리뷰, 리뷰 확장 링크, 썸네일 등 다양한 유용한 정보가 포함됩니다. 또한, 메뉴 섹션별로 항목 설명, 가격, 썸네일, 사진 및 리뷰 수, 리뷰 링크 등 매우 상세한 데이터가 제공됩니다.

다중 메뉴 처리 방법

일부 레스토랑은 여러 개의 메뉴를 제공하며, 이 정보는 response[:full_menu_results][:menus]에서 모두 확인할 수 있습니다. 특정 메뉴를 스크래핑하고자 할 경우, menu_name 요청 매개변수에 해당 메뉴의 이름을 정확히 지정해야 합니다. 만약 menu_name이 지정되지 않으면, 레스토랑에서 기본으로 설정한 메뉴가 스크래핑됩니다.

SerpApi 계정 설정 및 API 연동

  1. SerpApi 계정 생성: SerpApi는 월 250회 검색을 제공하는 무료 티어를 운영하고 있습니다. 유효한 이메일과 전화번호를 사용하여 가입 페이지에서 계정을 생성합니다.

  2. Playground 활용: 계정 생성 후 SerpApi Playground를 통해 Yelp Place Full Menu에서 얻을 수 있는 다양한 정보를 탐색할 수 있습니다. place_idfull_menu: "true"를 설정하여 기본 메뉴 스크래핑 결과를 확인하는 예시가 제공됩니다.

  3. API 키 통합: 애플리케이션에서 SerpApi 서비스를 프로그래밍 방식으로 사용하려면 대시보드에서 고유한 비밀 API 키를 복사하여 사용해야 합니다. API 키는 보안에 유의해야 하며, 노출 시 관리 페이지에서 새 키를 생성할 수 있습니다.

Ruby를 활용한 SerpApi 연동 예시

SerpApi를 Ruby 애플리케이션에 통합하는 것은 매우 간단합니다. 다음은 serpapi gem을 사용하여 Yelp Place Full Menu 결과를 검색하는 코드 예시입니다.

ruby require "serpapi" client = SerpApi::Client.new( engine: "yelp_place", place_id: "juniors-restaurant-new-york-9", full_menu: "true", api_key: "YOUR_SECRET_API_KEY" ) results = client.search full_menu_results = results[:full_menu_results] 이 코드는 yelp_place 엔진과 특정 place_id를 사용하여 전체 메뉴를 요청하고, 그 결과를 full_menu_results 변수에 저장하는 과정을 보여줍니다.

결론

결론적으로, SerpApi는 Yelp 레스토랑의 전체 메뉴 데이터를 스크래핑하기 위한 강력하고 직관적인 솔루션을 제공합니다. 간단한 API 호출을 통해 메뉴 이름, 개별 항목, 가격, 리뷰 등 풍부하고 구조화된 정보를 손쉽게 확보할 수 있으며, 이는 시장 분석, 경쟁사 모니터링, AI 기반 서비스 개발 등 다양한 분야에서 데이터 기반 의사결정을 지원하는 데 크게 기여할 수 있습니다. 개발자는 SerpApi의 포괄적인 문서와 Playground 기능을 활용하여 효율적으로 데이터를 수집하고 애플리케이션에 통합할 수 있습니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!