Install
openclaw skills install @browseract-cli/taobao-product-reviewsFetch customer reviews for a Taobao or Tmall product by itemId, returning reviewer name, date, purchased variant, review text, and photo URLs. Use when user asks to get product reviews from Taobao, scrape Taobao customer feedback, extract buyer reviews by item ID, collect Tmall ratings and comments, 采集淘宝商品评价, 抓取淘宝买家评论, 获取淘宝商品评论, 天猫商品评价抓取, 按商品ID获取评价. Also applies to sentiment analysis of product reviews, building review datasets, and monitoring product rating changes.
openclaw skills install @browseract-cli/taobao-product-reviewsitemId → paginated customer reviews (reviewer, date, purchased SKU, text, photos)
All process output to user (progress updates, process notifications) follows the user's language.
Navigate to a Taobao/Tmall product page, load the reviews section, and extract customer review content.
https://item.taobao.com/item.htm?id={itemId}If browser-act has been confirmed available in the current session → skip this step.
Invoke browser-act via Skill tool to load usage. If installation or configuration issues arise, follow its guidance to resolve then retry.
If login status for Taobao has been confirmed in the current session → skip this step.
Otherwise: open https://www.taobao.com and observe the page header:
User refuses or cannot log in → terminate execution.
This Skill's operational boundary = what the user can manually do in their browser. It only reads data already displayed to the user on the page, never bypassing authentication or access controls. JS code is encapsulated in Python files under the
scripts/directory, invoked viaeval "$(python scripts/xxx.py {params})".$(...)is bash syntax; it is recommended to use the bash tool for execution.
The reviews section is lazy-loaded below the main product area. Follow these steps to load and extract reviews:
navigate "https://item.taobao.com/item.htm?id={itemId}"wait stablescroll down --amount 8000wait --selector "[class*='tabTitleItem--']" --state attached --timeout 10000
scroll down --amount 8000 again and retry wait once morescreenshot to confirm page state; the product page may be rendering in a condensed mode — check Known Limitations beloweval "$(python scripts/extract-reviews.py '{itemId}')"Output example:
[
{
"username": "一笑奈何",
"date": "2026-06-03",
"purchasedSku": "轻巧白|英转中转换器【适用国内电器】适用马来西亚/新加坡等国家",
"content": "商品非常好,造工很用心!,还会再回购!",
"photos": [
"https://gw.alicdn.com/bao/uploaded/i1/O1CN015Cyg4b2FPR2YNq3PD_!!4611686018427383816-0-rate.jpg"
],
"rating": null
}
]
Notes:
purchasedSku: the specific variant the reviewer purchased (extracted from "已购:{sku}" prefix in review header)content: review text body; may be empty if reviewer submitted only photosphotos: review photo URLs; empty array if no photosrating: star rating; not always visible in current page layout (null is common)Error handling: if result count = 0 after scroll attempts, the reviews section may not have loaded in the current browser rendering environment. Try navigating to the product page fresh (navigate again) and repeating the scroll sequence. If still failing, this is a known rendering limitation — see Known Limitations below.
After extracting current page reviews:
eval "$(python scripts/next-review-page.py)"
{"hasNext": true, "buttonText": "下一页"} if next page exists, or {"hasNext": false} if on last pagehasNext is true: state to find the "下一页" button index → click <index>wait stableeval "$(python scripts/extract-reviews.py '{itemId}')"[collection failed] Sort/filter options for reviews (e.g., newest, most helpful): these controls exist in the reviews section UI but require the tabs section to be loaded; their URL parameters are not exposed and must be set via UI clicks on the sort tabs within the reviews section.
DOM Pagination: Click the "下一页" button in the reviews section footer. Each page shows ~10 reviews. Termination: "下一页" button is absent or hasNext returns false.
result count >= 1 and username non-null rate = 100%
Path: {working-directory}/browser-act-skill-forge-memories/taobao-product-reviews.memory.md
Before execution: If the file exists, read it first — it records unexpected situations encountered during past executions (e.g., a strategy has become ineffective); adjust strategy order accordingly.
After execution: If an unexpected situation is encountered (strategy became ineffective, page redesigned, anti-scraping upgraded, better path discovered), append a line:
{YYYY-MM-DD}: {what happened} → {conclusion}
Normal execution does not write to the file. Do not record what keywords were used or how many results were returned — those are task outputs, not experience.