프로그램 (PHP,Python)

Botasaurus 스크래핑 프레임워크로 쉽고 재미있게 웹 데이터 추출하기

날으는물고기 2024. 10. 16. 00:54

Omkar Tools

웹 스크래핑은 현대 데이터 분석과 웹 자동화에서 필수적인 도구입니다. 하지만 복잡한 설정과 코딩으로 인해 처음 시작하는 분들에게는 어려움이 따를 수 있습니다. Botasaurus는 이러한 문제를 해결하기 위해 탄생한 혁신적인 프레임워크로, 웹 스크래핑을 쉽고 효율적이며 재미있게 만들어줍니다. Botasaurus의 주요 기능과 실제 활용 방법을 예시를 통해 설명합니다.

Botasaurus의 주요 기능

  • UI 기반 스크래퍼: 몇 분 만에 어떤 웹 스크래퍼든 UI 기반 스크래퍼로 변환할 수 있습니다.
  • 봇 감지 우회: 모든 봇 테스트를 문제 없이 통과할 수 있습니다.
  • 쉬운 병렬화: 비동기 및 병렬 스크래핑을 간단하게 만듭니다.
  • 유틸리티: 캐싱, 사이트맵, 데이터 정리 등 다양한 유틸리티를 제공합니다.
  • 확장성: Kubernetes를 통해 스크래퍼를 여러 대의 머신으로 쉽게 확장할 수 있습니다.

Botasaurus 시작하기

1단계: Botasaurus 설치

pip를 사용하여 Botasaurus를 설치합니다. 터미널을 열고 다음 명령어를 실행하세요.

python -m pip install botasaurus

2단계: Botasaurus 프로젝트 설정

프로젝트를 위한 디렉터리를 만들고 해당 디렉터리로 이동합니다.

mkdir my-botasaurus-project
cd my-botasaurus-project
code .  # VSCode가 설치되어 있다면 이 명령어로 프로젝트를 엽니다.

3단계: 스크래핑 코드 작성

프로젝트 디렉터리에 main.py라는 이름의 파이썬 스크립트를 만들고 다음 코드를 추가합니다.

from botasaurus.browser import browser, Driver

@browser
def scrape_heading_task(driver: Driver, data):
    # Omkar Cloud 웹사이트 방문
    driver.get("https://www.omkar.cloud/")

    # 제목 요소의 텍스트 가져오기
    heading = driver.get_text("h1")

    # 데이터를 JSON 파일로 저장
    return {
        "heading": heading
    }

# 웹 스크래핑 작업 시작
scrape_heading_task()

4단계: 스크래핑 작업 실행

스크래퍼를 실행하려면 터미널에서 다음 명령어를 실행하세요.

python main.py

스크립트를 실행하면 Botasaurus가 다음 작업을 수행합니다.

  • Google Chrome을 실행합니다.
  • https://www.omkar.cloud/에 방문합니다.
  • 제목 텍스트를 추출합니다.
  • output/scrape_heading_task.json 파일로 자동 저장합니다.

요청 모듈을 사용한 대체 스크래핑 방법

requests 모듈을 사용하여 제목을 스크래핑할 수도 있습니다. main.py의 코드를 다음으로 대체하세요.

from botasaurus.request import request, Request
from botasaurus.soupify import soupify

@request
def scrape_heading_task(request: Request, data):
    # Omkar Cloud 웹사이트 방문
    response = request.get("https://www.omkar.cloud/")

    # BeautifulSoup 객체 생성
    soup = soupify(response)

    # 제목 요소의 텍스트 가져오기
    heading = soup.find('h1').get_text()

    # 데이터를 JSON 파일로 저장
    return {
        "heading": heading
    }

# 웹 스크래핑 작업 시작
scrape_heading_task()

다시 실행하세요.

python main.py

이번에는 브라우저를 열지 않고 인간적인 HTTP 요청을 수행합니다.

Botasaurus 이해하기

Botasaurus Driver를 사용하는 이유

Botasaurus Driver는 Selenium과 유사한 웹 자동화 드라이버로, 더 인간적이고 웹사이트에 접근하는 데 문제가 없습니다. 웹 스크래퍼를 위해 설계된 사용자 친화적인 API를 제공하여 사용이 편리합니다.

Cloudflare 보호 페이지 처리

Cloudflare 보호 페이지를 우회하려면 google_get 메서드와 bypass_cloudflare 인수를 사용합니다.

from botasaurus.browser import browser, Driver

@browser
def scrape_heading_task(driver: Driver, data):
    driver.google_get("https://www.g2.com/products/github/reviews.html?page=5&product_id=github", bypass_cloudflare=True)
    heading = driver.get_text('.product-head__title [itemprop="name"]')
    return {
        "heading": heading
    }

scrape_heading_task()

UI 기반 스크래퍼 만들기

Botasaurus를 사용하여 UI 기반 스크래퍼를 만들 수 있습니다. 다음 단계에 따라 Botasaurus Starter Template을 실행하세요.

시작 템플릿 클론

git clone https://github.com/omkarcloud/botasaurus-starter my-botasaurus-project
cd my-botasaurus-project

종속성 설치

python -m pip install -r requirements.txt
python run.py install

스크래퍼 실행

python run.py

브라우저가 http://localhost:3000/에 열립니다. 스크래핑하려는 링크(예: https://www.omkar.cloud/)를 입력하고 "Run" 버튼을 클릭하세요.

브라우저 데코레이터 구성 팁

Botasaurus는 브라우저를 다양한 방식으로 구성할 수 있습니다.

이미지 및 CSS 차단

@browser(block_images_and_css=True)

프록시 사용

@browser(proxy="http://username:password@proxy-provider-domain:port")

헤드리스 모드 활성화

@browser(headless=True)

Chrome 확장 프로그램 사용

from chrome_extension_python import Extension

@browser(extensions=[
    Extension("https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom")
])

캐싱 및 병렬 실행 사용

효율적인 스크래핑을 위해 캐싱 및 병렬 실행을 활성화합니다.

@browser(parallel=3, cache=True)
  • parallel=3: 동시에 3개의 브라우저 인스턴스를 실행합니다.
  • cache=True: 동일한 URL에 대한 요청을 캐싱하여 성능을 향상시킵니다.

 

Botasaurus는 웹 스크래퍼를 쉽게 구축하고 확장하며 유지 관리할 수 있는 강력하고 사용자 친화적인 웹 스크래핑 프레임워크입니다. 제공된 단계와 팁을 따라하면 효율적이고 견고한 웹 스크래퍼를 쉽게 만들 수 있습니다. 웹 스크래핑을 더욱 효율적이고 간편하게 다양한 기능을 활용하여 여러 산업 분야에서 데이터를 수집하고 분석할 수 있습니다. 아래에서는 Botasaurus를 활용하기 좋은 대표적인 사례 유형과 활용 방안을 소개합니다.

활용 사례 유형

  1. 가격 모니터링 및 비교
    • 전자 상거래 사이트에서 상품의 가격 정보를 수집하여 경쟁사 가격 비교, 시장 분석 등에 활용할 수 있습니다.
    • 여행사 웹사이트에서 항공권, 호텔 가격 등을 모니터링하여 최적의 가격을 제공할 수 있습니다.
  2. 리뷰 및 평점 수집
    • 제품 리뷰 사이트앱 스토어에서 사용자 리뷰와 평점을 수집하여 제품 개선이나 마케팅 전략 수립에 활용할 수 있습니다.
    • 레스토랑 리뷰 사이트에서 고객 피드백을 수집하여 서비스 품질을 향상시킬 수 있습니다.
  3. 뉴스 및 콘텐츠 수집
    • 뉴스 포털에서 특정 주제나 키워드에 대한 기사를 수집하여 트렌드 분석이나 콘텐츠 큐레이션에 활용할 수 있습니다.
    • 블로그 및 포럼에서 사용자 의견을 수집하여 소비자 동향을 파악할 수 있습니다.
  4. 채용 정보 수집
    • 구인구직 사이트에서 채용 공고를 수집하여 인재 확보 전략을 수립하거나 시장 동향을 파악할 수 있습니다.
    • 기업 웹사이트에서 채용 정보를 직접 수집하여 보다 정확한 데이터를 얻을 수 있습니다.
  5. 부동산 정보 수집
    • 부동산 매물 사이트에서 매물 정보를 수집하여 시장 분석이나 투자 전략 수립에 활용할 수 있습니다.
    • 지역별 부동산 가격 변동 추이를 모니터링할 수 있습니다.
  6. 소셜 미디어 데이터 수집
    • 트위터, 인스타그램 등에서 해시태그나 키워드 기반으로 게시물을 수집하여 브랜드 모니터링이나 여론 조사를 할 수 있습니다.
    • 인플루언서의 활동을 추적하여 마케팅에 활용할 수 있습니다.

제안사항

  1. UI 기반의 노코드(No-Code) 데이터 추출 플랫폼 개발
    • Botasaurus의 UI 기반 스크래퍼 기능을 활용하여 비개발자도 쉽게 웹 데이터를 수집할 수 있는 플랫폼을 구축할 수 있습니다.
    • 드래그 앤 드롭 방식으로 스크래핑 요소를 선택하고, 데이터 파이프라인을 구성할 수 있습니다.
  2. 실시간 데이터 모니터링 시스템 구축
    • Botasaurus의 병렬화와 캐싱 기능을 활용하여 특정 웹사이트의 데이터를 실시간으로 모니터링하는 시스템을 개발할 수 있습니다.
    • 예를 들어, 주식 시장 정보상품 재고 상태를 실시간으로 추적할 수 있습니다.
  3. AI 기반의 데이터 정제 및 분석 통합
    • 스크래핑된 데이터를 AI 모델과 결합하여 자동으로 데이터 정제, 분류, 예측 분석을 수행할 수 있습니다.
    • 자연어 처리(NLP)를 활용하여 수집된 텍스트 데이터를 심층 분석할 수 있습니다.
  4. 클라우드 서비스와의 통합으로 확장성 극대화
    • Botasaurus를 AWS Lambda, Google Cloud Functions와 같은 서버리스 아키텍처와 통합하여 스케일링을 자동화할 수 있습니다.
    • Kubernetes 클러스터를 활용하여 대규모 스크래핑 작업을 효율적으로 관리할 수 있습니다.
  5. 웹사이트 변경 감지 및 알림 시스템
    • 특정 웹페이지의 변경 사항을 감지하여 알림을 보내는 시스템을 구축할 수 있습니다.
    • 예를 들어, 정부 입찰 공고, 상품 출시 소식 등을 모니터링하여 즉각적인 대응이 가능합니다.
  6. 교육용 데이터 세트 구축
    • 머신러닝이나 데이터 과학 교육을 위한 맞춤형 데이터 세트를 구축할 수 있습니다.
    • 다양한 웹사이트에서 데이터를 수집하여 실제 사례 기반의 교육 자료를 만들 수 있습니다.
  7. 챗봇 및 가상 비서와의 연동
    • Botasaurus를 활용하여 최신 정보를 수집하고 이를 챗봇이나 가상 비서에 연동하여 사용자에게 실시간으로 제공할 수 있습니다.
    • 예를 들어, 날씨 정보, 뉴스 헤드라인, 주식 시세 등을 제공하는 챗봇을 개발할 수 있습니다.
  8. 데이터 시각화 대시보드 구축
    • 수집된 데이터를 데이터 시각화 도구와 연동하여 대시보드를 구축하고, 인사이트를 실시간으로 제공할 수 있습니다.
    • 경영진을 위한 비즈니스 인텔리전스(BI) 도구로 활용할 수 있습니다.

Botasaurus는 웹 스크래핑의 복잡성을 줄이고, 효율성과 생산성을 높여주는 뛰어난 프레임워크입니다. 위에서 소개한 다양한 활용 사례와 혁신적인 아이디어를 통해 Botasaurus를 최대한 활용해 보시기 바랍니다. 웹 데이터의 무한한 가능성을 탐색하고, 새로운 비즈니스 기회를 발굴할 수 있을 것입니다.

728x90