개발안전 결제자세히
- 패키지 범위 내 수정은 무료입니다.
- 납품 후 3일 이내에 응답하지 않으면 작업이 자동으로 승인됩니다.
결제 시 금액이 예치되며, 작업을 승인해야만 지급됩니다.

결과물 예시
원예 공구 공급업체의 카탈로그를 Excel로 옮기는 파서
결과물 예시
| 품번 | 상품명 | 가격 | 재고 | 무게 | 사진 |
|---|---|---|---|---|---|
| GT-1042 | 전지가위, 20mm | 18.90 | 있음 | 0.24kg | …/gt-1042.jpg |
| GT-1187 | 접이식 톱, 210mm | 24.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 코드, 설정 파일, README를 받아 고객님의 컴퓨터에서 실행하시면 됩니다. 공개된 페이지를 서버에 무리를 주지 않는 속도로 읽고, 로그인하거나 캡차나 보호 장치를 우회하지 않으며, Amazon이나 Google은 읽지 않습니다. 쇼핑몰 이용 약관이 이를 허용하는지는 고객님이 판단하시며, 나중에 구조가 바뀌면 업데이트가 필요합니다.
포함 사항
- 받으시는 결과물Python 코드, 설정 파일, 단계별 안내가 담긴 README가 들어 있는 ZIP 압축 파일. 코드는 주문 페이지에서도 볼 수 있습니다.
- 상품마다 한 행쇼핑몰별 가격, 재고, 링크를 나란히
- 코드나 지정한 링크로 대조바코드, 제조사 부품 번호 또는 지정하신 링크
- 확인 날짜모든 행에 기록되어 실행 결과끼리 비교 가능
- 적당한 속도페이지 사이 대기 시간을 설정에서 지정
- 고객님의 컴퓨터에서 실행Python이 설치된 Windows, macOS 또는 Linux
진행 방식
- 1쇼핑몰쇼핑몰, 저장한 상품 페이지, 상품 목록을 보내 주세요
- 2파서코드와 실행 안내서를 작성합니다
- 3실행실행한 뒤 쇼핑몰마다 몇몇 행을 확인해 보세요
- 4수정패키지 범위 안에서 수정을 요청하고 오류 메시지가 있으면 보내 주세요
준비해 주실 내용
쇼핑몰 세 곳(베이직과 스탠다드는 한 곳)과 브라우저에서 저장한(파일 > 다른 이름으로 페이지 저장) 쇼핑몰별 상품 페이지. 바코드처럼 쇼핑몰에 표시되는 코드가 담긴 상품 목록, 또는 쇼핑몰마다 각 상품의 링크를 적은 표. 쇼핑몰별로 필요한 필드(예: 가격, 이전 가격, 재고 여부, 링크). 대략적인 상품 수. CSV, Excel, JSON 중 무엇인지.
다음 내용을 여쭤봅니다:
- 어떤 쇼핑몰인가요?
- 상품을 대조하는 방법
- 쇼핑몰별 필드
- 상품은 대략 몇 개인가요?
패키지 비교
안전 결제
주문할 때 결제하지만, 대금은 승인된 작업에 대해서만 지급됩니다.
- 고정 가격결제 후에는 패키지 가격이 변경되지 않습니다.
- 금액 예치결제 시 금액은 예치만 됩니다. 작업을 승인하면 서비스에 지급됩니다.
- 납품 전 검수모든 결과물은 전달되기 전에 품질 검수를 거치며, 승인하기 전에 주문 페이지에서 확인할 수 있습니다.
- 무료 수정패키지에서 허용하는 횟수만큼 요청 사항 범위 내에서 수정을 요청할 수 있습니다.
- 3일 후 자동 승인납품 후 3일 이내에 작업을 승인하거나 수정을 요청하지 않으면 자동으로 승인됩니다. 납품 후 주문 채팅에 메시지를 남기면 주문은 대기 상태가 됩니다. 저희가 답변한 뒤 3일을 다시 시작할 수 있으며, 이 경우 채팅으로 알려 드립니다.
- 재작업 또는 전액 환불결과물이 요청 사항과 맞지 않고 수정으로도 해결되지 않았거나, 작업이 작업 기간의 두 배를 넘겨 지연되면 주문 채팅에 알려 주세요. 작업을 다시 하거나 결제 금액을 전액 환불해 드립니다.
질문과 답변
왜 프리미엄만 3개 쇼핑몰을 비교하나요?
쇼핑몰마다 페이지가 달라 각각 별도의 코드가 필요하기 때문입니다. 베이직과 스탠다드는 쇼핑몰 한 곳을 다루므로 먼저 시험해 보기에 좋습니다.
쇼핑몰에 바코드가 표시되지 않으면 어떻게 하나요?
그 경우 쇼핑몰마다 각 상품의 링크를 적은 표를 보내 주세요. 저희는 이름으로 추측해서 상품을 짝짓지 않습니다.
Amazon, Google Shopping, 소셜 네트워크 쇼핑몰도 포함할 수 있나요?
아니요. Amazon, Google, LinkedIn, 소셜 네트워크는 약관이 금지하므로 제외됩니다. 다른 쇼핑몰은 약관이 허용하는지 고객님이 판단하세요.
배송비도 비교할 수 있나요?
상품 페이지에 누구에게나 표시되는 경우에만 가능합니다. 장바구니에 담거나 주소를 입력하거나 로그인하지 않습니다.
답을 찾지 못하셨나요?


