danawa-price-search

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Danawa Price Search

Danawa Price Search

What this skill does

What this skill does

다나와의 로그인 없는 공개 검색/가격비교 표면을 읽기 전용으로 호출해 한국 쇼핑몰 가격을 비교한다.
  • 상품명/검색어로 다나와 상품 후보와
    pcode
    를 찾는다.
  • 선택한 상품의 쇼핑몰별 오퍼를 조회한다.
  • 상품가만이 아니라 배송비 포함 실구매가, 무료배송 여부, 카드 할인가, 무이자 할부 문구를 함께 정리한다.
  • 구매, 로그인, 장바구니, 찜, 주문 액션은 하지 않는다.
以只读方式调用Danawa无需登录的公开搜索/价格比较界面,对比韩国购物商城的商品价格。
  • 通过商品名/搜索词查找Danawa商品候选及
    pcode
  • 查询所选商品在各购物商城的报价。
  • 不仅整理商品价格,还一并整理包含运费的实际购买价、是否免运费、信用卡折扣价、免息分期说明。
  • 不进行购买、登录、加入购物车、收藏、下单操作。

When to use

When to use

  • "다나와에서 에어팟 최저가 찾아줘"
  • "다나와 가격비교로 쇼핑몰별 가격 비교해줘"
  • "무료배송인지, 카드 할인까지 보면 어디가 제일 싸?"
  • "무이자 할부 붙은 최저가도 같이 봐줘"
  • "帮我在Danawa找AirPods的最低价"
  • "用Danawa价格比较来对比各购物商城的价格"
  • "算上免运费和信用卡折扣的话,哪家最便宜?"
  • "也帮我看看带免息分期的最低价"

When not to use

When not to use

  • 실제 구매/주문/결제/로그인이 필요한 경우
  • 회원 전용 쿠폰, 개인화 포인트, 앱 전용 혜택을 확정해야 하는 경우
  • 대량 모니터링이나 고빈도 크롤링을 해야 하는 경우
  • CAPTCHA, 접근 차단, fingerprint 우회를 해야 하는 경우
  • 需要实际购买/下单/支付/登录的情况
  • 需要确认会员专属优惠券、个性化积分、APP专属优惠的情况
  • 需要批量监控或高频率爬取的情况
  • 需要绕过验证码(CAPTCHA)、访问限制、指纹识别的情况

Required inputs

Required inputs

상품명 또는 검색어가 필요하다. 검색어가 넓으면 브랜드, 모델명, 용량, 색상, 자급제/통신사 여부 등을 추가로 물어본다.
권장 질문:
찾을 다나와 상품명이나 모델명을 알려주세요. 예: 갤럭시 S25 울트라 256GB 자급제, 에어팟 프로 2세대 USB-C
需要商品名或搜索词。如果搜索词范围较广,会进一步询问品牌、型号、容量、颜色、是否为裸机/运营商合约机等信息。
推荐的问题:
请告诉我要查找的Danawa商品名或型号。例如:Galaxy S25 Ultra 256GB 裸机,AirPods Pro 2代 USB-C

Public surfaces

Public surfaces

현재 구현은 인증 없는 공개 표면만 사용한다.
  • 검색 페이지:
    https://search.danawa.com/dsearch.php?query=...
  • 상품 상세 페이지:
    https://prod.danawa.com/info/?pcode=...
  • 가격비교 AJAX:
    https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php
AJAX endpoint는 HTML fragment를 반환한다. helper는
.diff_item
, 쇼핑몰 로고
alt
,
em.prc_c
/
em.prc_t
, 배송 문구, 카드 할인 라인, 무이자 할부 레이어, 다나와 bridge link를 파싱한다.
当前实现仅使用无需认证的公开界面。
  • 搜索页面:
    https://search.danawa.com/dsearch.php?query=...
  • 商品详情页面:
    https://prod.danawa.com/info/?pcode=...
  • 价格比较AJAX:
    https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php
AJAX端点返回HTML片段。助手会解析
.diff_item
、商城logo的
alt
属性、
em.prc_c
/
em.prc_t
、配送说明、信用卡折扣行、免息分期层、Danawa跳转链接。

Commands

Commands

스킬 디렉터리에서 실행한다.
bash
python scripts/danawa_search.py search "에어팟 프로 2세대" --limit 8
python scripts/danawa_search.py offers 28208783 --limit 10
python scripts/danawa_search.py compare "에어팟 프로 2세대" --limit 5 --offers 5
helper는 JSON만 출력한다. 결과를 확인한 뒤 사용자에게는 한국어 표와 짧은 결론으로 정리한다.
在技能目录下执行。
bash
python scripts/danawa_search.py search "에어팟 프로 2세대" --limit 8
python scripts/danawa_search.py offers 28208783 --limit 10
python scripts/danawa_search.py compare "에어팟 프로 2세대" --limit 5 --offers 5
助手仅输出JSON格式结果。确认结果后,会以中文表格和简短结论的形式呈现给用户。

Output shape

Output shape

search

search

json
{
  "query": "...",
  "source_url": "...",
  "count": 0,
  "items": []
}
items[]
주요 필드:
  • pcode
  • title
  • price
    ,
    price_text
  • mall_text
  • url
  • image_url
  • spec
json
{
  "query": "...",
  "source_url": "...",
  "count": 0,
  "items": []
}
每个
items[]
的主要字段:
  • pcode
  • title
    :商品标题
  • price
    ,
    price_text
    :价格、价格文本
  • mall_text
    :商城名称文本
  • url
    :商品链接
  • image_url
    :商品图片链接
  • spec
    :商品规格

offers

offers

json
{
  "pcode": "...",
  "title": "...",
  "source_url": "...",
  "count": 0,
  "offers": []
}
offers[]
주요 필드:
  • mall
  • price
    ,
    price_text
  • shipping
  • is_free_shipping
  • shipping_fee
  • total_price
    ,
    total_price_text
  • card_price
    ,
    card_price_text
  • card_name
  • card_discount
    ,
    card_discount_text
  • installment
  • installment_detail
  • url
항상 무료배송 여부, 배송비 포함 실구매가, 카드별 할인 가격, 무이자 할부 문구를 함께 확인한다.
json
{
  "pcode": "...",
  "title": "...",
  "source_url": "...",
  "count": 0,
  "offers": []
}
每个
offers[]
的主要字段:
  • mall
    :商城名称
  • price
    ,
    price_text
    :商品价格、价格文本
  • shipping
    :配送说明
  • is_free_shipping
    :是否免运费
  • shipping_fee
    :运费
  • total_price
    ,
    total_price_text
    :实际购买总价、总价文本
  • card_price
    ,
    card_price_text
    :信用卡折扣价、折扣价文本
  • card_name
    :信用卡名称
  • card_discount
    ,
    card_discount_text
    :信用卡折扣、折扣说明文本
  • installment
    :分期信息
  • installment_detail
    :分期详情
  • url
    :购买链接
请务必一并确认是否免运费、包含运费的实际购买价、各信用卡折扣价、免息分期说明。

compare

compare

compare
는 검색 결과를 먼저 가져온 뒤 각 후보 상품에 대해
offers[]
를 best-effort로 붙인다. 검색 결과가 애매하면 상위 후보의 제목과
pcode
를 먼저 보여주고 선택을 요청한다.
compare
会先获取搜索结果,然后尽可能为每个候选商品附加
offers[]
信息。如果搜索结果不明确,会先展示排名靠前的候选商品标题和
pcode
,并请求用户选择。

Response style

Response style

Discord/Telegram/chat 응답에서는 표 형식을 우선한다.
md
| 순위 | 판매처 | 상품가 | 배송 | 실구매가 | 카드할인가 | 무이자 | 링크 |
|---:|---|---:|---|---:|---:|---|---|
| 1 | G마켓 | 217,950원 | 무료배송 | 217,950원 | - | 최대 24개월 | 보기 |
| 2 | 옥션 | 305,722원 | 무료배송 | 305,722원 | 우리카드 303,720원 | 최대 24개월 | 보기 |
정렬 기준:
  1. 기본 순위는
    total_price
    오름차순이다.
  2. card_price
    가 있고 카드 적용 시 승자가 바뀌면 표 아래에 "카드 기준 최저가"를 별도로 적는다.
  3. 무이자 할부는 결제 조건이 달라질 수 있으므로 Danawa 노출 문구 기준이라고 밝힌다.
요약 예시:
md
최저 실구매가: G마켓 217,950원 / 무료배송
카드 기준 최저가: 옥션 우리카드 303,720원
무이자: G마켓·옥션 최대 24개월 표기
카드 할인 markup이 없으면 "카드 할인가 표기 없음"이라고 쓰고, 체크아웃 할인 자체가 없다고 단정하지 않는다.
在Discord/Telegram/聊天工具中优先使用表格格式。
md
| 排名 | 销售商 | 商品价 | 配送 | 实际购买价 | 信用卡折扣价 | 免息分期 | 链接 |
|---:|---|---:|---|---:|---:|---|---|
| 1 | G마켓 | 217,950韩元 | 免运费 | 217,950韩元 | - | 最长24个月 | 查看 |
| 2 | 옥션 | 305,722韩元 | 免运费 | 305,722韩元 | 友利信用卡 303,720韩元 | 最长24个月 | 查看 |
排序标准:
  1. 默认按
    total_price
    升序排列。
  2. 如果存在
    card_price
    且应用信用卡后最低价变化,会在表格下方单独标注“信用卡基准最低价”。
  3. 免息分期可能因支付条件不同而变化,需说明是基于Danawa显示的信息。
摘要示例:
md
最低实际购买价:G마켓 217,950韩元 / 免运费
信用卡基准最低价:옥션 友利信用卡 303,720韩元
免息分期:G마켓·옥션 标注最长24个月
如果没有信用卡折扣标注,则标注“无信用卡折扣价显示”,不武断断言结账时无折扣。

Workflow

Workflow

  1. 검색어를 확인한다.
  2. python scripts/danawa_search.py search "<검색어>" --limit 5
    로 후보를 확인한다.
  3. 후보가 명확하면 해당
    pcode
    offers
    를 실행한다.
  4. 후보가 애매하면 상위 3~5개 상품명/가격/
    pcode
    를 보여주고 선택을 요청한다.
  5. 오퍼는 배송비 포함 실구매가 기준으로 표 정렬한다.
  6. 카드 할인가가 있으면 카드 기준 최저가도 별도 요약한다.
  7. 조회 시점 기준이며 가격/배송/카드 혜택은 변동될 수 있음을 짧게 덧붙인다.
  1. 确认搜索词。
  2. 通过
    python scripts/danawa_search.py search "<搜索词>" --limit 5
    获取候选商品。
  3. 如果候选商品明确,使用对应的
    pcode
    执行
    offers
    命令。
  4. 如果候选商品不明确,展示排名前3~5的商品名/价格/
    pcode
    ,并请求用户选择。
  5. 报价按包含运费的实际购买价排序生成表格。
  6. 如果有信用卡折扣价,单独摘要信用卡基准最低价。
  7. 需简短补充说明:价格/配送/信用卡优惠可能随时间变动,本次查询为当前时点的信息。

Failure modes

Failure modes

  • 검색 결과가 0개면 검색어를 더 구체화한다.
  • Danawa HTML/AJAX 구조가 바뀌면 selector가 깨져
    offers
    가 비거나 필드가 누락될 수 있다.
  • 검색 결과 가격과 오퍼 AJAX 가격은 갱신 시점·카드가·제휴 링크 기준 차이로 다를 수 있다.
  • 카드 할인과 무이자 문구는 Danawa가 노출한 경우에만 확정적으로 보여준다.
  • 공개 표면 기반이므로 고빈도 요청에는 throttling/backoff를 추가해야 한다.
  • 접근 차단이나 CAPTCHA가 나오면 우회를 시도하지 말고 실패 모드로 보고한다.
  • 如果搜索结果为0条,建议用户细化搜索词。
  • 如果Danawa的HTML/AJAX结构发生变化,选择器会失效,导致
    offers
    结果为空或字段缺失。
  • 搜索结果中的价格与AJAX报价可能因更新时间、信用卡优惠、合作链接等因素存在差异。
  • 仅在Danawa显示的情况下,才明确展示信用卡折扣和免息分期说明。
  • 基于公开界面,高频率请求需添加限流/退避机制。
  • 如果出现访问限制或验证码(CAPTCHA),请勿尝试绕过,直接报告失败状态。

Done when

Done when

  • 검색어 또는 모델명을 확인했다.
  • 상품 후보를 최소 1개 이상 반환하거나, 반환 실패 이유를 설명했다.
  • 쇼핑몰별 상품가, 배송비, 실구매가, 카드 할인가, 무이자 문구를 조회 시점 기준으로 정리했다.
  • 사용자 응답은 표 형식으로 제공했다.
  • 로그인/구매/차단 우회 범위를 벗어나지 않았다.
  • 已确认搜索词或型号。
  • 已返回至少1个商品候选,或说明返回失败的原因。
  • 已按查询时点整理各购物商城的商品价、运费、实际购买价、信用卡折扣价、免息分期说明。
  • 用户回复已以表格格式呈现。
  • 未超出登录/购买/绕过限制的范围。