AutoScraper 소개
웹 페이지에서 원하는 데이터를 긁어오려면 보통 CSS 선택자나 XPath를 직접 찾아 코드에 박아야 합니다. 페이지 구조가 조금만 바뀌어도 선택자를 다시 손봐야 하고, 사이트마다 규칙을 새로 작성해야 하는 번거로움이 있습니다. 간단한 목록 하나를 뽑는 데도 개발자가 HTML을 열어 태그 경로를 분석하는 시간이 적지 않게 듭니다.
AutoScraper는 이 과정을 뒤집어, 사람이 선택자를 지정하는 대신 원하는 결과의 예시를 주면 스크래핑 규칙을 스스로 학습하는 파이썬 라이브러리입니다. URL이나 HTML 콘텐츠와 함께 뽑고 싶은 값의 목록(wanted_list) 을 넘기면, AutoScraper가 그 값들이 페이지 어디에 어떤 형태로 있는지 규칙을 찾아내고 비슷한 요소들을 반환합니다. 값은 텍스트, URL, 그 밖의 HTML 태그 값 무엇이든 될 수 있습니다.
한 번 학습한 스크래퍼 객체는 새로운 URL에 그대로 재사용할 수 있습니다. 즉, 예시 페이지 한 번으로 규칙을 만든 뒤 같은 구조의 다른 페이지들에서 동일한 위치의 데이터를 계속 뽑아낼 수 있습니다. 가볍고 빠른 것을 지향하며 파이썬 3과 호환됩니다.
AutoScraper의 동작 방식
AutoScraper의 핵심은 "선택자를 쓰지 않고 예시로 학습한다"는 점입니다. 아래 그림은 예시 값 하나가 어떻게 전체 결과 목록으로 이어지는지 보여줍니다.
동작은 크게 두 갈래로 나뉩니다. get_result_similar 는 예시와 비슷한 요소를 모두 찾아 반환하고, get_result_exact 는 예시와 정확히 같은 위치의 요소를 반환합니다. 예를 들어 목록 페이지에서 제목 하나를 예시로 주면 비슷한 제목 전체를 얻을 수 있고, 상세 페이지에서 특정 값(가격 등) 을 예시로 주면 다른 페이지의 같은 위치 값을 정확히 가져올 수 있습니다. 여러 값을 wanted_list에 함께 넣으면 get_result_exact 가 목록에 넣은 순서 그대로 데이터를 반환합니다.
AutoScraper 설치 및 사용법
AutoScraper는 pip로 설치합니다.
pip install autoscraper
다음은 스택오버플로우 질문 페이지에서 관련 질문 제목들을 한 번에 가져오는 예시입니다. 원하는 제목 하나만 wanted_list 에 넣으면 나머지 비슷한 제목이 함께 반환됩니다.
from autoscraper import AutoScraper
url = 'https://stackoverflow.com/questions/2081586/web-scraping-with-python'
wanted_list = ["What are metaclasses in Python?"]
scraper = AutoScraper()
result = scraper.build(url, wanted_list)
print(result)
# 학습한 규칙을 같은 구조의 다른 페이지에 재사용
scraper.get_result_similar('https://stackoverflow.com/questions/606191/convert-bytes-to-a-string')
프록시나 커스텀 헤더가 필요하면 requests 모듈의 인자를 request_args 로 그대로 넘길 수 있습니다. 또한 학습한 스크래퍼는 파일로 저장했다가 나중에 다시 불러올 수 있습니다.
# 저장
scraper.save('yahoo-finance')
# 불러오기
scraper.load('yahoo-finance')
AutoScraper의 라이선스
AutoScraper는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
AutoScraper 프로젝트 GitHub 저장소
더 읽어보기
-
Scraperr: 직접 호스팅할 수 있는, 오픈소스 노-코드 웹 스크래핑 도구(No-code Web Scarping Solution)
-
AutoCLI: 웹사이트 데이터를 단일 명령어로 추출하는 초고속 AI 기반 CLI 도구 (feat. OpenCLI-rs)
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

