웹사이트에서 원하는 데이터를 깔끔하게 추출해주는 새로운 오픈소스 웹 스크래핑 도구 'Runo'가 공개되었습니다. 이 도구는 사용자가 정의한 스키마(schema)에 따라 웹 페이지에서 필요한 정보를 추출하고, 이를 정형화된 JSON 형태로 반환합니다. 특히 대규모 언어모델(LLM)을 활용하여 웹사이트 구조 변경에도 강건하게 데이터를 추출하는 것이 특징입니다. 개발자는 복잡한 셀렉터나 XPath를 직접 작성하고 유지보수할 필요 없이, 필드 이름, 타입, 예시 값만 정의하면 됩니다.
Runo는 원래 유료 서비스(SaaS)로 개발되었으나, 유지보수 비용 문제로 인해 오픈소스로 전환되었습니다. 이 도구는 구글 제미니(Gemini) API 키를 주요 요구사항으로 하며, 파이썬(Python) 3.11 이상 환경에서 설치하여 사용할 수 있습니다. 데이터 추출 과정에서 Runo는 먼저 일반 HTTP 요청을 시도하고, 자바스크립트(JavaScript) 렌더링이 필요한 경우에만 헤드리스 브라우저를 사용해 효율성을 높입니다. 또한, JSON-LD, OpenGraph, Twitter Cards 같은 메타데이터를 먼저 확인하여 LLM 호출을 최소화하는 '빠른 경로(Fast paths)' 기능도 갖추고 있습니다. 단일 URL 추출, 여러 URL에 대한 일괄 추출, 링크를 따라가는 크롤링 등 세 가지 모드를 지원하며, CLI, 로컬 서버, 파이썬 라이브러리 등 다양한 인터페이스를 제공합니다.
Runo의 등장은 웹 스크래핑의 패러다임을 바꿀 잠재력을 가지고 있습니다. 기존 스크래핑 방식은 웹사이트의 DOM 구조에 의존하기 때문에, 디자인이나 레이아웃이 변경되면 스크래퍼가 쉽게 고장 나는 문제가 있었습니다. 하지만 Runo는 LLM이 '의미'를 읽어 데이터를 추출하므로, 웹사이트 개편에도 안정적으로 작동합니다. 이는 데이터 의존적인 비즈니스를 운영하는 기업이나 개인 개발자에게 큰 이점을 제공합니다. 복잡한 스크래핑 로직 유지보수 부담을 줄여주고, 더 신뢰할 수 있는 데이터를 얻을 수 있게 하여, 웹 데이터 활용의 문턱을 낮추고 새로운 서비스 개발 기회를 창출할 것으로 기대됩니다.