웹사이트 파서개발·커스터마이징

웹 페이지의 공개 데이터를 CSV나 Excel로 모아 주는 Python 웹사이트 파서: 가격, 카탈로그, 게시글

보통 15분 안에 완료수정 포함품질 검수
패키지
안전 결제자세히
  • 패키지 범위 내 수정은 무료입니다.
  • 납품 후 3일 이내에 응답하지 않으면 작업이 자동으로 승인됩니다.

결제 시 금액이 예치되며, 작업을 승인해야만 지급됩니다.

웹 페이지의 공개 데이터를 CSV나 Excel로 모아 주는 Python 웹사이트 파서: 가격, 카탈로그, 게시글

결과물 예시

스탠다드 패키지 예시

원예 공구 공급업체의 카탈로그를 Excel로 옮기는 파서

결과물 예시

품번상품명가격재고무게사진
GT-1042전지가위, 20mm18.90있음0.24kg…/gt-1042.jpg
GT-1187접이식 톱, 210mm24.50있음0.31kg…/gt-1187.jpg
GT-2210양손 전정가위, 물결날39.00없음1.10kg…/gt-2210.jpg
GT-3305모종삽, 스테인리스9.80있음0.18kg…/gt-3305.jpg
GT-4120정원용 호스 25m, 1/2"42.00있음2.90kg…/gt-4120.jpg

예시 파일에는 목록 페이지 52개에서 모은 상품 1,236개가 담겨 있습니다.

코드 일부

def product_links(list_url: str) -> Iterator[str]:
    """목록의 모든 페이지에서 상품 페이지 링크를 모읍니다. '다음'을 따라갑니다."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """공개 페이지 하나를 서버에 무리를 주지 않는 속도로 엽니다. 요청 사이에 쉬고, 오류가 나면 몇 번 다시 시도합니다."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s 응답 %s, %d/3번째 시도", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} 페이지가 3번 시도해도 열리지 않았습니다")

파일: scraper.py, settings.ini(시작 페이지, 요청 사이 대기 시간, 파일 이름), requirements.txt, 그리고 설치와 실행 방법을 담은 README가 들어 있는 ZIP 압축 파일. 공개된 페이지만 2초에 한 페이지씩 읽으며, 먼저 사이트의 robots.txt를 확인합니다. 고객이 자신의 컴퓨터에서 직접 실행합니다.

고객: 공급업체의 공구를 재판매하는 온라인 원예 용품점. 공급업체 웹사이트에 공개 카탈로그는 있지만 가격표 파일은 없습니다. 과제: 카탈로그 목록 페이지를 돌며 상품 페이지를 하나씩 열고 품번, 상품명, 가격, 재고, 무게, 대표 사진 링크를 Excel에 저장해, 일주일에 한 번 가격을 비교하기.

고객과 모든 정보는 가상입니다.

서비스 소개

파서는 공개된 웹 페이지에서 눈에 보이는 데이터를 모아 표로 저장합니다. 상품 가격과 재고, 쇼핑몰에 쓸 공급업체 카탈로그, 매물·구인 공고, 행사, 기사 등을 모을 수 있습니다. 사이트와 페이지를 알려 주시고 필요한 항목(상품명, 가격, 링크, 이미지 등)을 적은 다음, 해당 페이지 한두 개를 브라우저에서 저장해(파일 > 다른 이름으로 페이지 저장) 보내거나 스크린샷을 보내 주세요. 그 페이지의 실제 구조에 맞춰 Python으로 파서를 작성하며, 결과는 CSV, Excel 또는 JSON으로 저장됩니다. 코드, 주소와 페이지 사이 대기 시간이 담긴 설정 파일, Python 설치 및 실행 방법을 설명한 README가 들어 있는 압축 파일을 받으십니다. 파서는 고객님의 컴퓨터에서 직접 실행하므로 데이터는 곧바로 고객님께 갑니다. 저희가 대신 데이터를 모으거나 보관하지 않습니다. 파서는 공개된 페이지만 적당한 속도로 읽으며, 로그인하거나 캡차 등 보호 장치를 우회하거나 이름, 이메일, 전화번호 같은 개인정보를 수집하지 않습니다. 사이트 구조가 바뀌면 파서를 업데이트해야 할 수 있습니다. 사이트 이용 약관상 데이터를 수집하고 사용할 수 있는지는 고객님이 판단하셔야 합니다.

포함 사항

  • 받으시는 결과물Python 코드, 설정 파일, 단계별 안내가 담긴 README가 들어 있는 ZIP 압축 파일. 코드는 주문 페이지에서도 볼 수 있습니다.
  • 원하는 항목, 원하는 표필요한 순서대로 열 배치
  • 실제 페이지 기준 제작보내 주신 페이지의 구조에 맞춰 작성
  • 적당한 속도페이지 사이 대기 시간을 설정에서 지정
  • 고객님의 컴퓨터에서 실행Python이 설치된 Windows, macOS 또는 Linux
  • 쉬운 안내서무엇을 설치하고 어떻게 실행하는지 단계별로

진행 방식

  1. 1
    페이지 수사이트, 항목, 저장한 페이지 한두 개를 보내 주세요
  2. 2
    파서코드와 실행 안내서를 작성합니다
  3. 3
    실행실행하고 표의 첫 몇 행을 확인하세요
  4. 4
    수정패키지 범위 안에서 수정을 요청하고 오류 메시지가 있으면 보내 주세요

준비해 주실 내용

사이트와 정확한 페이지: 목록 페이지와 상세 페이지 링크, 대략적인 페이지 수. 필요한 항목을 표의 순서대로, 항목마다 예시와 함께. 파서가 실제 구조를 따를 수 있도록 해당 페이지 한두 개를 브라우저에서 HTML로 저장한 파일(파일 > 다른 이름으로 페이지 저장) 또는 스크린샷. 필요한 결과 파일 형식(CSV, Excel, JSON)과 실행할 환경.

다음 내용을 여쭤봅니다:

  • 어떤 사이트의 어떤 페이지인가요?
  • 필요한 항목
  • 대략 몇 페이지인가요?
  • 결과 파일
  • 그 밖에 필요한 기능

패키지 비교

패키지베이직한 종류 페이지용 파서₩36,100스탠다드목록과 상세 페이지₩70,700프리미엄여러 사이트 또는 페이지 종류₩128,400
작업 기간1일2일3일
수정 횟수123
사이트 수11최대 3개
페이지 종류12(목록과 상세)최대 3개
항목 수최대 10개최대 25개각각 최대 25개
목록의 여러 페이지 순회없음있음있음
결과 파일CSVExcel 또는 CSVExcel, CSV 또는 JSON
중복 제거, 중단된 곳부터 이어서 실행없음없음있음
주문하기 베이직주문하기 스탠다드주문하기 프리미엄

안전 결제

주문할 때 결제하지만, 대금은 승인된 작업에 대해서만 지급됩니다.

  • 고정 가격결제 후에는 패키지 가격이 변경되지 않습니다.
  • 금액 예치결제 시 금액은 예치만 됩니다. 작업을 승인하면 서비스에 지급됩니다.
  • 납품 전 검수모든 결과물은 전달되기 전에 품질 검수를 거치며, 승인하기 전에 주문 페이지에서 확인할 수 있습니다.
  • 무료 수정패키지에서 허용하는 횟수만큼 요청 사항 범위 내에서 수정을 요청할 수 있습니다.
  • 3일 후 자동 승인납품 후 3일 이내에 작업을 승인하거나 수정을 요청하지 않으면 자동으로 승인됩니다. 납품 후 주문 채팅에 메시지를 남기면 주문은 대기 상태가 됩니다. 저희가 답변한 뒤 3일을 다시 시작할 수 있으며, 이 경우 채팅으로 알려 드립니다.
  • 재작업 또는 전액 환불결과물이 요청 사항과 맞지 않고 수정으로도 해결되지 않았거나, 작업이 작업 기간의 두 배를 넘겨 지연되면 주문 채팅에 알려 주세요. 작업을 다시 하거나 결제 금액을 전액 환불해 드립니다.
이용 방법 →

질문과 답변

사이트를 파싱해도 법적으로 괜찮나요?

공개 데이터 수집은 많은 경우 허용되지만, 사이트 이용 약관과 데이터 관련 법은 나라마다 다르므로 데이터를 수집하고 사용할 수 있는지는 고객님이 판단하셔야 합니다. 파서는 로그인하거나 보호 장치를 우회하거나 개인정보를 수집하지 않으므로 안전한 범위 안에서 작동합니다.

데이터를 대신 모아 주시나요?

아니요. 파서를 받아 직접 실행하시므로 결과는 곧바로 고객님께 가고, 새 데이터가 필요할 때마다 다시 실행하시면 됩니다.

사이트가 바뀌거나 파서를 차단하면 어떻게 되나요?

파서는 현재 페이지 구조에 맞춰 작동합니다. 나중에 사이트 구조가 바뀌면 업데이트가 필요하며, 이는 새 주문이 됩니다. 적당한 속도로 읽지만 사이트가 방문을 제한할 수 있으며, 파서는 그런 제한을 우회하지 않습니다.

Amazon, Google, 소셜 네트워크도 파싱할 수 있나요?

아니요. 이용 약관에서 이런 방식의 데이터 수집을 금지하고, 많은 페이지가 로그인을 요구하며, 사람들의 개인정보를 담고 있습니다. 이런 데이터는 해당 서비스의 공식 API나 내보내기 기능을 이용하세요.

프로그래밍을 알아야 하나요?

아니요. README에 Python을 한 번 설치하고, 파서에 필요한 것을 명령어 하나로 설치하고, 실행하는 방법이 나와 있습니다. JavaScript로 내용을 만드는 페이지에는 브라우저 라이브러리(Playwright)를 사용하며, 이 역시 README에서 설명합니다.

답을 찾지 못하셨나요?

패키지