Launch Offer! Get lifetime access for just $99 for a limited time.

UScraper
Tutorials

How to Export Trustpilot Reviews to CSV on Windows

Export Trustpilot reviews to CSV on Windows. Capture reviewer, date, stars, headings, bodies. Runs locally — no subscription, data stays on your PC.

UScraper
May 1, 2026
10 min read
#trustpilot reviews export csv#export trustpilot reviews tutorial#scrape trustpilot reviews guide#trustpilot structured export#trustpilot scraper windows#collect trustpilot reviews locally#trustpilot service reviews api alternative#offline trustpilot export
How to Export Trustpilot Reviews to CSV on Windows

Marketing and CX teams often need Trustpilot reviews in CSVreviewer names, timestamps, headlines, verbatim bodies, and star ratings—without standing up API credentials on day one. This tutorial explains when desktop structured export wins, how the published trustpilot_export graph paginates, and how to validate rows before they enter BI tools. Need the fastest path? Open Trustpilot export — template library entry, import trustpilot_export.json, point Navigate at a profile you are allowed to study, and tune selectors after every Trustpilot redesign.

Before you start

Prerequisites, compliance context, and who this helps

Assume you can responsibly load the Trustpilot business profile you intend to analyze in Chromium, store an append-friendly .csv, and revisit selector maintenance whenever Trustpilot ships a visual refresh. This guide fits reputation analysts, product marketers tracking release sentiment, CX leads closing the loop on complaints, and researchers building internal briefing packs—all operating under counsel-approved use of third-party content.

Pair hands-on automation with Trustpilot's own policy layers: review the Trustpilot developer hub, authentication overview, business units API, and service reviews API when your organization can onboard official credentials. Consumer-facing rules live in Trustpilot's terms of use for consumers and terms for businesses—they matter even when data appears public in a browser.


Pick your lane

Desktop export, official APIs, or hosted scraping fleets

Best when stakeholders want spreadsheet-grade CSV, visual confirmation in DevTools, and custody that never leaves your disk unless you upload it afterward.

Anchor every run against the canonical download surfaced at https://uscraper.io/templates/trustpilot_export so block IDs (navigate-*, structured-export-*, element-exists-*, inject-javascript-*) remain aligned with changelog screenshots.

Trade-offs: Analysts—not a remote SRE team—must patch selectors whenever Trustpilot rotates typography classes (styles_consumerName__… fingerprints in bundled JSON illustrate how brittle hashed tokens can be).


Field map

Columns the Structured Export blueprint captures

The published workflow stores append-friendly batches in trustpilot.csv with headers emitted once and fileMode set to append so multi-page runs accumulate safely. Row scope targets Trustpilot review cards exposed as article[data-service-review-card-paper="true"]revalidate in DevTools because attribute names and inner class tokens drift.

ColumnSelector intentOperational notes
ReviewerConsumer display name class (.styles_consumerName__… in the blueprint)Pair with review headline hash if names collide or anonymize downstream for public reporting.
TimeNative <time> element textNormalize relative phrases ("1 week ago") before mixing with warehouse timestamps.
HeadingAnchor carrying data-review-title-typography="true"Captures the bold review title line users see in card layouts.
DescriptionBody typography class (CDS_Typography_body-l__… token in JSON)Watch for multi-paragraph reviews—ensure selector spans the full body, not truncated teasers.
Ratingdata-service-review-rating via row-scoped JavaScriptIf the expression falls back to '5', confirm you are still bound to each card—global queries exaggerate scores.

The graph adds Scroll and Inject JavaScript blocks so each loop loads additional DOM, clicks the Next pagination control (document.querySelector('a[name="pagination-button-next"]') in the sample), and returns to the Sleep node until an Element Exists probe sees a disabled next link (a[data-pagination-button-next-link="true"][aria-disabled="true"]).


Authoritative JSON sample

How the trustpilot_export.json graph is shaped

Treat the repository bundle as the source of truth: every block title, config.url, selector string, and connections edge must stay synchronized when you fork the workflow. The excerpt below mirrors the trustpilot_export blueprint that ships beside Trustpilot export — UScraper template downloads—trimmed for readability while preserving block types and Structured Export intent.

{
  "version": "1.0.0",
  "project": { "name": "Trustpilot", "description": null },
  "blocks": [
    {
      "block_id": "navigate-1755811915181",
      "block_type": "process",
      "title": "Navigate",
      "config": { "url": "https://example.com" }
    },
    {
      "block_id": "structured-export-1755812016827",
      "block_type": "process",
      "title": "Structured Export",
      "config": {
        "fileName": "trustpilot.csv",
        "rowSelector": "article[data-service-review-card-paper=\"true\"]",
        "includeHeaders": true,
        "fileMode": "append",
        "columns": [
          { "name": "Reviewer", "selector": ".styles_consumerName__xKr9c", "attribute": "text" },
          { "name": "Time", "selector": "time", "attribute": "text" },
          { "name": "Heading", "selector": "a[data-review-title-typography=\"true\"]", "attribute": "text" },
          { "name": "Description", "selector": ".CDS_Typography_body-l__dd9b51", "attribute": "text" },
          {
            "name": "Rating",
            "selector": "ROW?.querySelector('div[data-service-review-rating]')?.getAttribute('data-service-review-rating') || '5'",
            "attribute": "alt",
            "isJs": true
          }
        ]
      }
    },
    {
      "block_id": "element-exists-1755812146416",
      "block_type": "process",
      "title": "Element Exists",
      "config": {
        "selector": "a[data-pagination-button-next-link=\"true\"][aria-disabled=\"true\"]"
      }
    },
    {
      "block_id": "inject-javascript-1755814228327",
      "block_type": "process",
      "title": "Inject JavaScript",
      "config": {
        "jsCode": "document.querySelector('a[name=\"pagination-button-next\"]').click()"
      }
    }
  ]
}

JSON is the contract: If marketing copy and the downloaded file disagree, trust the connections array in the full trustpilot_export.json—it encodes the pagination loop order your runtime actually executes.


Hands-on workflow

Run the Trustpilot export end-to-end

Import, validate, then widen the loop

Start from Trustpilot export template (trustpilot_export) so UUIDs and connector sides continue to match support screenshots.

Download and import the JSON graph

Pull trustpilot_export.json from https://uscraper.io/templates/trustpilot_export and load it verbatim—Navigate, Sleep, Element Exists, Structured Export, Scroll, and Inject JavaScript nodes depend on each other's ordering.

Point Navigate at the approved profile URL

Replace the placeholder host with the exact Trustpilot language variant you need; localized templates change heading density and pagination affordances.

Dry-run Structured Export on a single page

Temporarily break the loop (or stop after the first export) to confirm nonzero rows for Reviewer, Time, Heading, Description, and Rating before you scale runtime.

Restore pagination and monitor Element Exists branching

Re-enable edges so disabled Next buttons terminate cleanly while active buttons continue exporting—watch logs for flickering aria states Trustpilot uses during SPA transitions.

Append responsibly and snapshot filenames

Keep headers-once / append-on semantics for longitudinal studies, yet rotate filenames whenever you freeze evidence for regulators or detractor-response programs.

Dedupe downstream before NLP or dashboards

Hash Reviewer + Heading + substring(Description) in SQL or Sheets to suppress duplicates created by rerun overlaps or collapsed pagination states.


Validation

Validate CSV output against the live profile

Pivot tables should reconcile unique reviewers, star histograms, and recency buckets against what stakeholders manually scrolled in the Trustpilot UI. Sudden spikes in duplicate hashes usually mean pagination clicked faster than hydrated cards, while empty Heading columns often betray missing data-review-title-typography attributes on abbreviated cards.

Normalize Time values before longitudinal charts—mixed relative and absolute stamps confuse spreadsheet engines. If Rating sticks at five stars everywhere, revisit the blueprint's JavaScript expression: it deliberately falls back to '5' when attributes vanish, which masks binding bugs.

Community references such as Stack Overflow discussions on pandas exports, open-source parsers, or hands-on Beautiful Soup videos illustrate code-first workflows you can benchmark against—but desktop structured export still wins when policy teams insist on supervised, repeatable CSV snapshots.


Local desktop export vs hosted Trustpilot actors

DimensionUScraper Structured Export on WindowsManaged cloud lanes
Data custodyRows land beside your project folders by defaultVendors route traffic via their infra (Apify, Bright Data, etc.) unless you self-host runners
Selector ownershipAnalysts remap visually whenever Trustpilot changes DOMOperators patch presets centrally—you still chase layout drift
Spend modelFits desktop license budgeting alongside human QAPay for concurrency, proxies, and observability tiers
Best forAuditable snapshots under strict residencyBurst workloads across thousands of profiles

FAQ

Frequently asked questions

Trustpilot publishes consumer and business terms that govern how people may use the platform, and separate Trustpilot for Business API programs govern authenticated data access. Publicly visible review pages can still be restricted by contract, copyright in user-generated text, and regional privacy rules. Many teams limit exports to profiles they operate, throttle automation, keep derivatives internal, and obtain legal review before commercial reuse. Read Trustpilot's current consumer terms, business terms, and developer documentation alongside counsel before large-scale collection.


Trustpilot will keep evolving its card layout—treat this guide as an operational framework: import the graph, prove selectors on one page, re-open the loop, and validate CSV totals every time marketing ships a new profile skin.

FAQ

Frequently asked questions

Here are some of our most common questions. Can't find what you're looking for?

View All FAQs

Stop writing scripts. Start scraping visually.

Download UScraper and build your first web scraper in under 10 minutes. No subscriptions, no code, no limits.

Available on Windows 10+ · macOS coming soon