Quay lại blog

Theo dõi các thay đổi về đánh giá và số lượng nhận xét của TikTok Shop

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

04-Sep-2026

TL;DR:

  • Theo dõi đánh giá TikTok Shop cần ảnh chụp sản phẩm có thời gian. Một đánh giá hiện tại không thể cho thấy khi nào có sự thay đổi.
  • Số lượng đánh giá và nhận xét nên được đọc cùng nhau. Một sự thay đổi đánh giá mà không có sự tăng trưởng số lượng đánh giá cần một con đường đánh giá khác so với một sự thay đổi sau nhiều đánh giá mới.
  • Thiếu dữ liệu thu thập không phải là một đánh giá không thay đổi. Trạng thái thu thập nên được lưu trữ tách biệt với giá trị sản phẩm.
  • Cờ bất thường là một hàng đợi đánh giá. Nó không chứng minh một sự cố chất lượng sản phẩm hoặc xác định nguyên nhân của một sự thay đổi.
  • Diễn viên của Shop trả về các trường đánh giá tổng hợp, không phải văn bản đánh giá. Quy trình này không thể thực hiện phân tích tình cảm đánh giá.
  • Miễn phí để bắt đầu. Các tài khoản Scrapeless mới bao gồm tín dụng miễn phí thông qua Bảng điều khiển Scrapeless.

Giới thiệu: một đánh giá trở nên hữu ích khi nó có lịch sử

Các trang sản phẩm TikTok Shop tiết lộ một đánh giá tổng hợp và số lượng đánh giá tại thời điểm thu thập. Một bức ảnh chụp mô tả trang hiện tại; một chuỗi bức ảnh chụp có thể tiết lộ khi nào danh tiếng hiển thị thay đổi.

Hướng dẫn này xây dựng theo dõi đánh giá TikTok Shop cho một danh sách sản phẩm cố định. Nó thu thập ratingreview_count công khai, lưu trữ các quan sát hợp lệ trong SQLite, so sánh từng sản phẩm với bức ảnh chụp trước đó, và gửi những thay đổi bất thường đến cuộc đánh giá thủ công. Quy trình này theo dõi danh tiếng tổng hợp sản phẩm mà không yêu cầu quyền truy cập vào văn bản đánh giá hoặc tình cảm.

Hướng dẫn pipelines định giá cạnh tranh cho thấy một danh sách sản phẩm đã biết hỗ trợ so sánh lặp đi lặp lại.

Quy trình tổng quan

Giai đoạn Hành động Đầu ra
Theo dõi Duy trì cặp ID sản phẩm và khu vực Danh sách theo dõi sản phẩm
Thu thập Yêu cầu từng trang sản phẩm công khai Bức ảnh chụp Shop thô
Chuẩn hóa Phân tích đánh giá và số lượng đánh giá Hàng quan sát hợp lệ
So sánh Kết nối từng hàng với quan sát trước đó Sự kiện thay đổi đánh giá
Đánh giá Đánh dấu các thay đổi bất thường và kiểm tra trang Hàng đợi đánh giá của nhà phân tích

Quy trình này theo dõi các giá trị hiển thị trong các bức ảnh chụp sản phẩm công khai. Nó không cung cấp nội dung đánh giá, hồ sơ nhà đánh giá, hoặc chẩn đoán bên bán.

Các yêu cầu trước

  • Một tài khoản Scrapeless và khóa API từ Bảng điều khiển Scrapeless
  • Một danh sách theo dõi các ID sản phẩm công khai TikTok Shop và khu vực đã biết
  • Một lịch thu thập và chính sách giữ chân
  • Các ngưỡng thay đổi đánh giá và số lượng đánh giá được chọn trước khi thông báo
  • SCRAPELESS_API_KEY, TIKTOK_SHOP_PRODUCT_ID, và TIKTOK_SHOP_REGION cho ví dụ thu thập

Khối thu thập là một khoảng cách yêu cầu trước vì thông tin xác thực và danh sách theo dõi sản phẩm đến từ người đọc. Ví dụ theo hình dạng phản hồi Shop đã cung cấp và không cho thấy đầu ra API giả mạo.

Giai đoạn 1: Sửa Khóa Sản Phẩm và Khu Vực

Gọi scraper.tiktok.shop.page với một product_idregion đã biết. Lưu trữ cả hai giá trị yêu cầu và ngữ cảnh sản phẩm được trả về. Một khóa so sánh nên chứa ID sản phẩm và khu vực vì các đánh giá có thể được quan sát trên các bề mặt thị trường khác nhau.

Không sử dụng tiêu đề sản phẩm làm khóa chính. Tiêu đề có thể thay đổi, trong khi ID sản phẩm chuỗi là tham chiếu bền vững được cung cấp cho diễn viên. Giữ ID dưới dạng văn bản để việc chuyển đổi cơ sở dữ liệu không bao giờ thay đổi một định danh dài.

Mỗi lần thu thập cũng cần một bản ghi chạy với thời gian bắt đầu, trạng thái hoàn thành, và chi tiết lỗi. Một yêu cầu thất bại nên tạo một hàng trạng thái thu thập mà không sao chép đánh giá trước đó.

Giai đoạn 2: Phân Tích Đánh Giá và Số Lượng Đánh Giá Một Cách Thận Trọng

Phản hồi Shop có thể trả về rating dưới dạng một số và review_count dưới dạng một chuỗi. Phân tích đánh giá dưới dạng giá trị thập phân và số lượng đánh giá dưới dạng số nguyên không âm. Tài liệu tài liệu thập phân của Python giải thích sự biểu diễn thập phân chính xác được sử dụng cho các so sánh đánh giá.

Áp dụng những quy tắc này trước khi chèn một quan sát hợp lệ:

Trường Quy tắc hợp lệ Xử lý không hợp lệ
rating Số và trong khoảng giá trị sản phẩm được chấp nhận Lưu trữ tải trọng thô; đánh dấu giá trị không hợp lệ
review_count Số nguyên lớn hơn hoặc bằng không Lưu trữ tải trọng thô; đánh dấu giá trị không hợp lệ
product_id Chuỗi không rỗng Đánh dấu thu thập không hợp lệ
region Chuỗi đã chuẩn hóa không rỗng Đánh dấu thu thập không hợp lệ

Không chuyển đổi một đánh giá thiếu thành số không. Số không là một giá trị; thiếu là sự vắng mặt của bằng chứng.

Bắt Đầu Thu Thập Với Scrapeless

Tăng cường quy trình thu thập web và tự động hóa của bạn với Scrapeless!
Đăng ký hôm nay và nhận $5 tín dụng miễn phíkhông cần thẻ tín dụng.
Nhận tín dụng miễn phí ngay bây giờ trong Bảng điều khiển Scrapeless.

Giai đoạn 3: Chụp ảnh danh tiếng sản phẩm trong cửa hàng

Cơ sở dữ liệu giữ các nỗ lực thu thập tách biệt với các quan sát đánh giá hợp lệ. Tài liệu CREATE TABLE của SQLite xác định các ràng buộc được sử dụng trong ví dụ.

Lưu ý: Mã dưới đây yêu cầu các giá trị SCRAPELESS_API_KEY, TIKTOK_SHOP_PRODUCT_IDTIKTOK_SHOP_REGION trực tiếp do người đọc cung cấp.

python Copy
import json
import os
import sqlite3
import uuid
from datetime import datetime, timezone
from decimal import Decimal, InvalidOperation
from urllib.request import Request, urlopen

ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"


def utc_now():
    return datetime.now(timezone.utc).isoformat()


def fetch_product(product_id, region):
    body = json.dumps({
        "actor": "scraper.tiktok.shop.page",
        "input": {"product_id": str(product_id), "region": region},
    }).encode()
    request = Request(
        ENDPOINT,
        data=body,
        headers={
            "content-type": "application/json",
            "x-api-token": os.environ["SCRAPELESS_API_KEY"],
        },
        method="POST",
    )
    with urlopen(request, timeout=60) as response:
        return json.load(response)


def parse_rating(value):
    try:
        rating = Decimal(str(value))
    except (InvalidOperation, TypeError, ValueError):
        return None
    return rating if Decimal("0") <= rating <= Decimal("5") else None


def parse_review_count(value):
    try:
        parsed = int(value)
    except (TypeError, ValueError):
        return None
    return parsed if parsed >= 0 else None


database = sqlite3.connect("tiktok-shop-ratings.sqlite3")
database.executescript("""
CREATE TABLE IF NOT EXISTS collection_runs (
    run_id TEXT PRIMARY KEY,
    collected_at TEXT NOT NULL,
    requested_product_id TEXT NOT NULL,
    requested_region TEXT NOT NULL,
    status TEXT NOT NULL,
    detail TEXT
);
CREATE TABLE IF NOT EXISTS rating_snapshots (
    run_id TEXT PRIMARY KEY,
    collected_at TEXT NOT NULL,
    product_id TEXT NOT NULL,
    region TEXT NOT NULL,
    rating TEXT NOT NULL,
    review_count INTEGER NOT NULL,
    raw_json TEXT NOT NULL
);
""")

run_id = str(uuid.uuid4())
collected_at = utc_now()
product_id = os.environ["TIKTOK_SHOP_PRODUCT_ID"]
region = os.environ["TIKTOK_SHOP_REGION"]

try:
    raw = fetch_product(product_id, region)
    rating = parse_rating(raw.get("rating"))
    review_count = parse_review_count(raw.get("review_count"))
    returned_product_id = str(raw.get("product_id") or product_id)
    returned_region = str(raw.get("region") or region).casefold()

    if rating is None or review_count is None:
        raise ValueError("rating or review_count is missing or invalid")

    database.execute(
        "INSERT INTO rating_snapshots VALUES (?, ?, ?, ?, ?, ?, ?)",
        (
            run_id, collected_at, returned_product_id, returned_region,
            str(rating), review_count, json.dumps(raw, ensure_ascii=False),
        ),
    )
    status, detail = "success", None
except Exception as error:
    status, detail = "failed", f"{type(error).__name__}: {error}"

database.execute(
    "INSERT INTO collection_runs VALUES (?, ?, ?, ?, ?, ?)",
    (run_id, collected_at, product_id, region, status, detail),
)
database.commit()
database.close()

Bản ghi ngoại lệ bảo tồn sự không chắc chắn mà không chèn một quan sát đánh giá sai. Quy trình theo dõi có thể bộc lộ các lần chạy không thành công trong hàng đợi chất lượng của nó.

Giai đoạn 4: So sánh mỗi sản phẩm với ảnh chụp trước đó hợp lệ của nó

Các hàm cửa sổ của SQLite có thể ghép mỗi hàng hợp lệ với quan sát trước đó của nó cho cùng một sản phẩm và khu vực. Tài liệu hàm cửa sổ xác định LAG(), cái này phù hợp cho so sánh này.

sql Copy
-- Illustrative query over the schema created above.
WITH ordered AS (
  SELECT
    collected_at,
    product_id,
    region,
    CAST(rating AS REAL) AS rating,
    review_count,
    LAG(CAST(rating AS REAL)) OVER (
      PARTITION BY product_id, region ORDER BY collected_at
    ) AS prior_rating,
    LAG(review_count) OVER (
      PARTITION BY product_id, region ORDER BY collected_at
    ) AS prior_review_count
  FROM rating_snapshots
)
SELECT
  *,
  rating - prior_rating AS rating_delta,
  review_count - prior_review_count AS review_count_delta
FROM ordered
WHERE prior_rating IS NOT NULL;

Tính toán độ chênh lệch chỉ giữa các quan sát hợp lệ. Nếu một lần chạy đã lên lịch không thành công, hãy giữ khoảng trống đó rõ ràng thay vì cho rằng giá trị đánh giá không thay đổi trong khoảng thời gian thiếu.

Giai đoạn 5: Gửi các thay đổi bất thường để xem xét thủ công

Một quy tắc cảnh báo có thể kết hợp thay đổi đánh giá tuyệt đối, tăng trưởng số lượng đánh giá, và chất lượng thu thập. Chọn ngưỡng từ danh mục sản phẩm của nhóm trước khi xem xét kết quả, sau đó phiên bản các quy tắc đó.

Bảng giám sát đánh giá nên bao gồm:

Sản phẩm Khu vực Đánh giá trước Đánh giá hiện tại Độ chênh lệch đánh giá Số đánh giá mới quan sát được Trạng thái
Mặt hàng trong danh sách theo dõi Khóa thị trường Giá trị hợp lệ trước đó Giá trị hợp lệ hiện tại Sự khác biệt Độ chênh lệch số đánh giá bình thường hoặc xem xét

Mở trang sản phẩm công khai trong quá trình xem xét và kiểm tra xem danh tính sản phẩm, khu vực, hoặc các giá trị hiển thị có thay đổi hay không. Xem xét cảnh báo như một lời nhắc để kiểm tra. Một sự chuyển động của đánh giá không thể chứng minh vấn đề chất lượng, hiệu ứng chiến dịch, sự thay đổi trong danh sách, hoặc sự kiện đánh giá chỉ từ các trường tổng hợp.

Scrapeless cung cấp Shop actor thông qua Scraping API. Kiểm tra trang giá hiện tại trước khi thiết lập kích thước danh sách theo dõi và tần suất thu thập.

Giải thích các thay đổi đánh giá một cách có trách nhiệm

Chỉ thu thập các trường sản phẩm công khai cần thiết cho mục đích theo dõi, giới hạn truy cập tải ích thô, và xác định thời gian giữ lại. Tài liệu Khung quyền riêng tư NIST cung cấp các kiểm soát chung cho việc giảm thiểu dữ liệu và quản trị.

Không gán nhãn các thay đổi đánh giá tổng hợp như một cảm xúc. Phản hồi của actor được sử dụng ở đây không bao gồm văn bản đánh giá, vì vậy một công cụ theo dõi đánh giá TikTok Shop có thể đo lường sự thay đổi trong đánh giá và số lượng đánh giá mà không cần giải thích lý do tại sao chúng xảy ra.

Kết luận: bảo tồn sự khác biệt giữa thay đổi và nguyên nhân

Việc theo dõi đánh giá TikTok Shop hoạt động khi mọi so sánh sử dụng các ảnh chụp sản phẩm và khu vực hợp lệ, có dấu thời gian. Theo dõi đánh giá bên cạnh số lượng đánh giá, giữ các thu thập không thành công tách biệt, và gửi các độ chênh lệch bất thường vào hàng đợi xem xét của con người. Đầu ra cho thấy rằng danh sách công khai đã thay đổi; nó không thiết lập nguyên nhân.

Sẵn sàng theo dõi đánh giá TikTok Shop?

Tham gia Scrapeless Discord hoặc cộng đồng Telegram để thảo luận về các sơ đồ danh tiếng. Tạo một tài khoản trong Bảng điều khiển Scrapeless khi danh sách theo dõi sản phẩm đã sẵn sàng.

Câu hỏi thường gặp

Q: Làm thế nào một nhóm có thể theo dõi đánh giá sản phẩm TikTok Shop?

Một nhóm có thể theo dõi đánh giá sản phẩm TikTok Shop bằng cách thu thập các ảnh chụp đánh giá và số lượng đánh giá có dấu thời gian cho các khóa sản phẩm và khu vực cố định.

Q: Liệu Shop actor trả về văn bản đánh giá cá nhân không?

Phản hồi của Shop được sử dụng trong quy trình làm việc này trả về đánh giá tổng hợp và số lượng đánh giá mà không có văn bản đánh giá cá nhân.

Q: Theo dõi đánh giá có thực hiện phân tích cảm xúc không?

Theo dõi đánh giá không thể thực hiện phân tích cảm xúc đánh giá mà không có văn bản đánh giá hoặc trường cảm xúc khác đã được xác minh.

Q: Cảnh báo giảm đánh giá chứng minh điều gì?

Một cảnh báo giảm đánh giá chỉ chứng minh rằng hai ảnh chụp công khai hợp lệ chứa các giá trị tổng hợp khác nhau; nó không chứng minh nguyên nhân của sự thay đổi.

Q: Có nên sao chép đánh giá cuối cùng về phía trước cho một thu thập không thành công không?

Một thu thập không thành công nên giữ lại như một khoảng trống chất lượng vì việc sao chép giá trị trước đó sẽ biến chứng cứ thiếu vào một quan sát không thay đổi.
Q: Các đội có cần quản lý các lựa chọn trong TikTok Shop không?

Người diễn xuất của Shop trả về các trường sản phẩm có cấu trúc thông qua API. Người gọi quản lý danh sách sản phẩm theo dõi, lịch trình, lưu trữ, quy tắc bất thường và xem xét thủ công.

Q: Việc thu thập dữ liệu sản phẩm công khai trên TikTok Shop có hợp pháp không?

Tính hợp pháp phụ thuộc vào quyền tài phán, thị trường, mục đích, phương thức truy cập, các điều khoản áp dụng và các trường đã thu thập. Sử dụng dữ liệu công khai cho một mục đích được phép và tìm kiếm lời khuyên pháp lý cho quy trình làm việc dự kiến.

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục