Tokopedia ist einer der größten Online-Marktplätze Indonesiens mit Zehnmillionen aktiver Käufer und Hunderttausenden von Händlern, die Produkte aus den Bereichen Elektronik, Mode, Lebensmittel und Haushaltswaren auflisten. Seine öffentlichen Such- und Produktseiten sind ein reiches Nachfragesignal: Die Titel, Preise, Verkäufer, Bewertungen und Verkaufsanzahlen, die für jede Anfrage erscheinen, sind genau das, was Teams für Preis-Tracking, Wettbewerber-Recherche und Kategorie-Trendanalyse verwenden.

Diese Anleitung zeigt Ihnen, wie Sie Tokopedia-Daten scrapen mit JavaScript und Node.js unter Verwendung von cheerio. Sie bauen einen kleinen, lauffähigen Scraper, der Tokopedia-Suchlisten und Produktseiten über die Crawling API abruft, Titel, Preis, Shop, Bewertung, Verkaufsanzahl und Link jedes Produkts parst, Paginierung behandelt und das Ergebnis als JSON und CSV exportiert. Die gesamte Anleitung beschränkt sich auf öffentliche Produktlistendaten, und der Abschnitt zur Rechtslage am Ende lohnt sich zu lesen, bevor Sie dies auf echte Volumina anwenden.

Was Sie bauen werden

Ein Node.js-Skript, das eine öffentliche Tokopedia-Such-URL entgegennimmt, das gerenderte HTML über die Crawling API abruft und für jedes Produkt im Ergebnisraster einen strukturierten Datensatz extrahiert. Als durchgängiges Beispiel verwenden wir eine Headset-Suche und ziehen diese Felder pro Artikel:

  • Titel der auf der Karte angezeigte Produktname.
  • Preis der angezeigte Preis, zum Beispiel "Rp178.000".
  • Shop der Name des Stores oder Verkäufers, der das Produkt anbietet.
  • Bewertung der Bewertungstext in Sternen, wenn die Karte einen zeigt.
  • Verkauft die Anzahl der verkauften Einheiten, falls vorhanden, zum Beispiel "60+ terjual".
  • Link die URL zur einzelnen Produktseite.

Warum eine einfache Anfrage bei Tokopedia scheitert

Wenn Sie eine Tokopedia-Such-URL mit einem einfachen HTTP-Client anfordern, erhalten Sie fast nie das Produktraster zurück. Zwei Dinge arbeiten gegen Sie. Erstens rendert Tokopedia seine Listenkarten im Browser mit JavaScript, sodass das initiale HTML eine nahezu leere Hülle ist, bis die Skripte der Seite ausgeführt werden und die Produktdaten abrufen. Zweitens kennzeichnet die Plattform automatisierten Datenverkehr: Datacenter-IPs und Anfragemuster, die nicht wie ein echter Browser aussehen, werden ratenlimitiert oder blockiert, bevor sie die gerenderten Listings erreichen.

Ein funktionierender Tokopedia-Scraper benötigt also zwei Dinge in einer Anfrage: einen Browser, der die Seite tatsächlich rendert, und eine IP, die die Plattform als echten Besucher liest. Sie können das selbst mit einem Headless-Browser plus einem Pool rotierender Residential-Proxys zusammenstellen, aber diese zu verknüpfen und gesund zu halten ist der Großteil der Arbeit. Die Crawling API fasst beides in einem einzigen Aufruf zusammen: Sie senden ihr die URL, sie rendert die Seite hinter einer vertrauenswürdigen IP und gibt fertiges HTML zurück, das Sie mit cheerio parsen können.

Pick the JavaScript token

Crawlbase gibt zwei Tokens aus: ein normales Token für statische Sites und ein JavaScript-Token für browser-gerendertes Content. Tokopedia lädt seine Produkte über JavaScript, also verwenden Sie hier das JavaScript-Token. Der kostenlose Tarif gibt Ihnen bis zu 20.000 Anfragen ohne Kreditkarte, damit Sie den gesamten Ablauf testen können, bevor Sie für etwas bezahlen.

Voraussetzungen

Sie benötigen einige Dinge, bevor Sie Code schreiben. Keines davon dauert lange.

Grundlegende JavaScript- und Node.js-Kenntnisse. Sie sollten in der Lage sein, ein Node-Skript zu schreiben und auszuführen sowie Pakete mit npm zu installieren. Wenn Sie neu bei Node sind, deckt der Leitfaden zum Aufbau eines Web-Scrapers mit Node.js das Niveau ab, das dieses Tutorial voraussetzt.

Node.js 16 oder höher. Überprüfen Sie Ihre Version mit node --version. Falls nicht vorhanden, installieren Sie es von der Node.js-Website oder über einen Versionsmanager wie nvm.

Ein Crawlbase-Konto und Token. Registrieren Sie sich, öffnen Sie Ihr Dashboard und kopieren Sie Ihr JavaScript-Token. Der kostenlose Tarif gibt Ihnen bis zu 20.000 Anfragen ohne Kreditkarte. Behandeln Sie das Token wie ein Passwort: Es authentifiziert Ihre Anfragen, also halten Sie es aus der Versionskontrolle heraus.

Das Projekt einrichten

Erstellen Sie einen Projektordner, initialisieren Sie ihn und installieren Sie die zwei Bibliotheken, die der Scraper benötigt.

bash
node --version

mkdir tokopedia-scraper && cd tokopedia-scraper
npm init -y

npm install crawlbase cheerio

Zwei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Node-Client für die Crawling API, und cheerio parst das zurückgegebene HTML mit einer jQuery-ähnlichen API, sodass Sie einzelne Felder per CSS-Selektor extrahieren können. Erstellen Sie eine Datei namens tokopedia-scraper.js in diesem Ordner und fügen Sie den Code aus den folgenden Schritten ein.

Schritt 1: Die gerenderte Suchseite abrufen

Beginnen Sie damit, die fertige Seite zu laden. Importieren Sie die Klasse CrawlingAPI, initialisieren Sie sie mit Ihrem Token und fordern Sie die Such-URL an. Tokopedia lädt Ergebnisse verzögert, also übergeben Sie ajax_wait und eine page_wait-Verzögerung, damit die Seite Zeit hat zu rendern, bevor die API sie erfasst. Das Überprüfen des Statuscodes vor dem Parsen hält Fehler offensichtlich statt stumm.

javascript
const { CrawlingAPI } = require('crawlbase');

const api = new CrawlingAPI({ token: 'YOUR_CRAWLBASE_TOKEN' });

const options = { ajax_wait: 'true', page_wait: '5000' };

const searchURL = 'https://www.tokopedia.com/search?q=headset';

api
  .get(searchURL, options)
  .then((response) => {
    if (response.statusCode === 200) {
      console.log(response.body.slice(0, 500));
    }
  })
  .catch((error) => console.error('API request error:', error));

Führen Sie das Skript mit node tokopedia-scraper.js aus und Sie sollten oben im Body echtes Tokopedia-Produkt-Markup sehen, keine abgespeckte Hülle. Das bestätigt, dass das Rendering funktioniert, bevor Sie einen einzigen Selektor schreiben. Das ajax_wait-Flag weist die API an, auf die Abwicklung seiteninterner Anfragen zu warten, und page_wait hält für zusätzliche fünf Sekunden, damit lazy geladene Karten Zeit haben zu erscheinen.

Crawlbase Crawling API

Diese erste Anfrage hat soeben eine vollständig gerenderte Tokopedia-Suchseite zurückgegeben, ohne einen Headless-Browser oder einen Proxy auf Ihrer Seite. Die Crawling API führt die Seite in einem echten Browser aus, wartet darauf, dass die JavaScript-geladenen Karten sich setzen, und rotiert serverseitig durch Residential-IPs, sodass Sie fertiges HTML aus einem einzigen Aufruf erhalten. Richten Sie es zunächst im kostenlosen Tarif auf eine beliebige öffentliche Suchanfrage.

Schritt 2: Jedes Produkt mit cheerio parsen

Mit dem gerenderten HTML in der Hand laden Sie es in cheerio und gehen die Produktkarten durch. Tokopedia ordnet jedes Ergebnis in einem sich wiederholenden Container innerhalb des Suchergebnis-Bereichs an, sodass Sie jede Karte auswählen und dann Titel, Preis, Shop, Bewertung, Verkaufsanzahl und Link aus ihr auslesen. Das defensive Lesen jedes Feldes verhindert, dass ein fehlender Wert den Lauf abbricht.

javascript
const cheerio = require('cheerio');

function parseSearchListings(html) {
  const $ = cheerio.load(html);
  const products = [];

  const cards = $(
    'div[data-testid="divSRPContentProducts"] div.css-5wh65g'
  );

  cards.each((index, element) => {
    const card = $(element);

    const title = card
      .find('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=')
      .text()
      .trim();

    const price = card
      .find('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=')
      .text()
      .trim();

    const shop = card
      .find('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=')
      .text()
      .trim();

    // Rating and sold count sit in small text rows under the price
    const rating = card.find('span.nBBbPk2cBpbZJ2nFPN8jKA\\=\\=').text().trim();
    const sold = card.find('span.eLNb-rRDe6X9p64ZsQAx9w\\=\\=').text().trim();

    const link = card.find('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=').attr('href');

    if (title) {
      products.push({
        title: title,
        price: price || 'N/A',
        shop: shop || 'N/A',
        rating: rating || 'N/A',
        sold: sold || 'N/A',
        link: link || 'N/A',
      });
    }
  });

  return products;
}

Einige Details halten dies seitengetreu. Die Karten befinden sich unter der Test-ID divSRPContentProducts, und jede Karte trägt den Titel in einem span mit der Klasse OWkG6oHwAppMn1hIBsC3pQ==, den Preis in einem div mit der Klasse ELhJqP-Bfiud3i5eBR8NWg== und den Shop-Namen in einem span mit der Klasse X6c-fdwuofj6zGvLKVUaNQ==. Der Produkt-Link wird aus dem href des Ankers der Karte gelesen. Diese Klassennamen enthalten literale ==-Zeichen, daher werden sie als \\=\\= innerhalb der cheerio-Selektor-Strings escapt. Die Bewertungs- und Verkaufsanzahl-Selektoren folgen demselben Kleintext-Muster unter dem Preis.

Selectors drift

Tokopedias gehashte Klassennamen (OWkG6oHwAppMn1hIBsC3pQ== und der Rest) werden generiert und ändern sich ohne Ankündigung. Behandeln Sie die obigen Selektoren als Ausgangsmuster, nicht als Vertrag. Wenn ein Feld leer zurückkommt, inspizieren Sie die Live-Seite in den Dev Tools Ihres Browsers und aktualisieren Sie den Selektor. Periodische Selektor-Wartung ist bei jedem Produktions-Scraper normal, kein Zeichen dafür, dass etwas kaputt ist.

Schritt 3: Paginierung behandeln

Tokopedia verteilt Suchergebnisse auf mehrere Seiten, und jede ist durch Anhängen eines page-Parameters an die URL erreichbar, zum Beispiel &page=2. Iterieren Sie von der ersten bis zur letzten gewünschten Seite, rufen Sie jede über die Crawling API ab, parsen Sie sie mit der Funktion aus Schritt 2 und sammeln Sie alles in einem Array. Wenn eine Seite nicht abgerufen werden kann, stoppen Sie früh statt leere Ergebnisse zu pushen.

javascript
async function fetchHtml(url) {
  const response = await api.get(url, options);
  if (response.statusCode === 200) return response.body;
  console.error(`Failed to fetch page: ${response.statusCode}`);
  return null;
}

async function scrapeMultiplePages(baseUrl, maxPages) {
  const allProducts = [];

  for (let page = 1; page <= maxPages; page++) {
    const paginatedUrl = `${baseUrl}&page=${page}`;
    const html = await fetchHtml(paginatedUrl);
    if (!html) break;

    const products = parseSearchListings(html);
    allProducts.push(...products);
    console.log(`Page ${page}: ${products.length} products`);
  }

  return allProducts;
}

Das iteriert durch die angeforderten Seiten, scrapt die Listings von jeder und aggregiert die Ergebnisse. Da jede Suchseite dieselbe Kartenstruktur teilt, funktioniert der in Schritt 2 geschriebene Parser für alle ohne Änderungen.

Schritt 4: Das vollständige Skript mit JSON- und CSV-Export zusammenstellen

Verbinden Sie nun Abrufen, Parser und Paginierung in einem lauffähigen Skript und schreiben Sie dann die Datensätze als JSON und CSV auf die Festplatte. Das JSON behält die vollständige verschachtelte Struktur; die CSV lässt sich direkt in ein Tabellenkalkulationsprogramm öffnen.

javascript
const fs = require('fs');
const { CrawlingAPI } = require('crawlbase');
const cheerio = require('cheerio');

const api = new CrawlingAPI({ token: 'YOUR_CRAWLBASE_TOKEN' });
const options = { ajax_wait: 'true', page_wait: '5000' };

// Paste parseSearchListings, fetchHtml, and scrapeMultiplePages here

function toCsv(rows) {
  const headers = ['title', 'price', 'shop', 'rating', 'sold', 'link'];
  const escape = (value) =>
    `"${String(value).replace(/"/g, '""')}"`;
  const lines = [headers.join(',')];
  for (const row of rows) {
    lines.push(headers.map((h) => escape(row[h])).join(','));
  }
  return lines.join('\n');
}

async function main() {
  const baseUrl = 'https://www.tokopedia.com/search?q=headset';
  const maxPages = 5;

  const products = await scrapeMultiplePages(baseUrl, maxPages);

  fs.writeFileSync(
    'tokopedia_search_results.json',
    JSON.stringify(products, null, 2)
  );
  fs.writeFileSync('tokopedia_search_results.csv', toCsv(products));

  console.log(`Saved ${products.length} products to JSON and CSV`);
}

main();

Fügen Sie die Funktionen parseSearchListings, fetchHtml und scrapeMultiplePages in dieselbe Datei ein, damit main sie aufrufen kann. Führen Sie es mit node tokopedia-scraper.js aus und Sie erhalten zwei Dateien: tokopedia_search_results.json mit den vollständigen strukturierten Datensätzen und tokopedia_search_results.csv, bereit zum Öffnen in einem Tabellenkalkulationsprogramm. Der toCsv-Helfer zitiert jedes Feld und verdoppelt alle eingebetteten Anführungszeichen, was hier wichtig ist, da Tokopedia-Titel lang sind und häufig Kommas enthalten.

Wie die Ausgabe aussieht

Die JSON-Datei enthält ein Objekt pro Produkt in der Reihenfolge der Suche, jedes mit Titel, Preis, Shop, Bewertung, Verkaufsanzahl und Link.

json
[
  {
    "title": "Ipega PG-R008 Gaming Headset for P4 /X1 series/N-Switch Lite/Mobile",
    "price": "Rp178.000",
    "shop": "ipegaofficial",
    "rating": "4.9",
    "sold": "250+ terjual",
    "link": "https://www.tokopedia.com/ipegaofficial/ipega-pg-r008-gaming-headset"
  },
  {
    "title": "Hippo Toraz Handsfree Earphone Stereo Sound - headset, Putih",
    "price": "Rp13.000",
    "shop": "HippoCenter",
    "rating": "4.8",
    "sold": "1rb+ terjual",
    "link": "https://www.tokopedia.com/hippocenter88/hippo-toraz-handsfree-earphone"
  }
]

Die CSV spiegelt dieselben Zeilen mit einer Kopfzeile wider, sodass sie direkt in Excel, Google Sheets oder eine beliebige Datenpipeline geladen werden kann, die durch Trennzeichen getrennte Dateien liest.

csv
title,price,shop,rating,sold,link
"Ipega PG-R008 Gaming Headset for P4 /X1 series","Rp178.000","ipegaofficial","4.9","250+ terjual","https://www.tokopedia.com/ipegaofficial/ipega-pg-r008-gaming-headset"
"Hippo Toraz Handsfree Earphone Stereo Sound - headset, Putih","Rp13.000","HippoCenter","4.8","1rb+ terjual","https://www.tokopedia.com/hippocenter88/hippo-toraz-handsfree-earphone"

Einzelne Produktseiten scrapen

Suchlisten geben Ihnen Breite; Produktseiten geben Ihnen Tiefe. Sobald Sie einen Link vom Such-Scraper haben, können Sie die Produktseite über dieselbe Crawling API abrufen und reichhaltigere Felder extrahieren. Auf einer Tokopedia-Produktseite befindet sich der Name in einem h1 mit data-testid="lblPDPDetailProductName", der Preis in einem div mit data-testid="lblPDPDetailProductPrice", der Shop in einem a mit data-testid="llbPDPFooterShopName", die Beschreibung in einem div mit data-testid="lblPDPDescriptionProduk" und die Vorschaubilder in img-Tags innerhalb der data-testid="PDPImageThumbnail"-Schaltflächen.

javascript
async function scrapeProductPage(url) {
  const html = await fetchHtml(url);
  if (!html) return null;

  const $ = cheerio.load(html);

  const images = $('button[data-testid="PDPImageThumbnail"] img')
    .map((i, el) => $(el).attr('src'))
    .get();

  return {
    name: $('h1[data-testid="lblPDPDetailProductName"]').text().trim(),
    price: $('div[data-testid="lblPDPDetailProductPrice"]').text().trim(),
    shop: $('a[data-testid="llbPDPFooterShopName"]').text().trim(),
    description: $('div[data-testid="lblPDPDescriptionProduk"]').text().trim(),
    images: images,
  };
}

Das verwendet denselben fetchHtml-Helfer vom Such-Scraper, sodass der Produktseiten-Scraper das Rendering und die IP-Rotation ohne zusätzliches Setup erbt. Geben Sie ihm einen Link, den der Such-Scraper gesammelt hat, und er gibt ein einzelnes strukturiertes Objekt zurück, das Sie auf dieselbe Weise speichern können, mit JSON.stringify oder einer Zeile in Ihrer CSV.

Unblockiert bleiben

Auch bei gehandhabtem Rendering beobachtet Tokopedia scraper-ähnlichen Datenverkehr. Einige Gewohnheiten halten einen Lauf gesund, und sie gelten für jedes schwere kommerzielle Ziel.

  • Dosieren Sie Ihre Anfragen. Fügen Sie eine Verzögerung zwischen Seitenabrufen ein, anstatt die Suchergebnisse in einer engen Schleife zu hämmern. Anfragen zu verteilen ist der wichtigste Faktor dafür, unter den Ratenlimits der Plattform zu bleiben.
  • Setzen Sie auf Rotation. Ein Pool von Residential-IPs verteilt Anfragen über viele echte Nutzeradressen, sodass keine einzelne ein Limit auslöst. Die Crawling API übernimmt das für Sie; wenn Sie Ihren eigenen Stack aufbauen, ist das der Teil, den Sie richtig machen müssen.
  • Lesen Sie die Statuscodes. Ein Lauf, der anfängt, Nicht-200-Antworten zurückzugeben, signalisiert Ihnen, dass die aktuelle Rate oder IP-Stufe nicht mehr ausreicht. Behandeln Sie das als Signal zum Zurückweichen, kein Rauschen, das ignoriert werden sollte.

Das umfassendere Playbook finden Sie unter Websites scrapen ohne blockiert zu werden und im tieferen Leitfaden zu JavaScript-Websites crawlen, die beide die Rendering- und Rotationsseite ausführlicher behandeln.

Ob das Scrapen von Tokopedia zulässig ist, hängt von Tokopedias Nutzungsbedingungen, Ihrem Gerichtsstand und dem ab, was Sie mit den Daten tun. Tokopedias Bedingungen schränken den automatisierten Zugriff ein, sodass Scraping unabhängig davon, wie sorgfältig Ihr Tooling ist, gegen diese Bedingungen verstoßen kann. Keiner der hier vorliegenden Codes ändert das; er sorgt nur dafür, dass der technische Teil funktioniert. Lesen Sie Tokopedias Allgemeine Geschäftsbedingungen und dessen robots.txt, und behandeln Sie beides als Grenze für das, was Sie sammeln.

Ein paar Linien, an denen es sich lohnt festzuhalten. Sammeln Sie nur öffentliche Produktdaten: Titel, Preis, Shop-Name, Bewertung, Verkaufsanzahl und Produkt-Link, die jeder auf einer Such- oder Produktseite ohne Konto sehen kann. Respektieren Sie Tokopedias erklärte Ratenerwartungen und halten Sie Ihr Anfragevolumen niedrig genug, sodass Sie seine Server nicht belasten. Vermeiden Sie persönliche Daten, einschließlich allem, was identifizierbaren Käufern oder Rezensenten über den öffentlichen Rezensionstext und die Sternzählungen auf der Seite hinaus zugeordnet werden kann. Vertreiben Sie nicht Tokopedias urheberrechtlich geschützte Medien, wie beispielsweise Händler-Produktfotografie, als ob es Ihre eigenen wären.

Diese Anleitung beschränkt sich bewusst auf öffentliche Such- und Produktlistungen, da das die Linie ist, die die Arbeit vertretbar macht. Sie deckt nichts hinter einem Login, Käufer- oder Verkäufer-Personendaten, Bestellhistorie, Chat oder Versuche ab, eine Authentifizierung oder einen CAPTCHA zu umgehen, der nicht für Sie gedacht war. Wenn Ihr Projekt mehr als öffentliche Listings benötigt, ist der richtige Weg eine sanktionierte Datenvereinbarung oder ein offizieller API-Kanal, den Tokopedia anbietet, kein cleverer Scraper. Im Zweifelsfall bevorzugen Sie Genehmigung gegenüber der Annahme, dass Schweigen Zustimmung bedeutet.

Zusammenfassung

Wichtigste Erkenntnisse

  • Tokopedia rendert Listings clientseitig und ratenlimitiert aggressiv. Eine einfache Anfrage gibt eine leere Hülle zurück, also müssen Sie die Seite hinter einer vertrauenswürdigen IP rendern, bevor Sie parsen, unter Verwendung des JavaScript-Tokens.
  • Die Crawling API erledigt beides in einem einzigen Aufruf. Sie rendert die Seite mit ajax_wait und page_wait, rotiert Residential-IPs und gibt Ihnen fertiges HTML zum Parsen mit cheerio.
  • cheerio extrahiert die Felder. Wählen Sie jede Produktkarte aus, lesen Sie dann Titel, Preis, Shop, Bewertung, Verkaufsanzahl und Link, und escapen Sie die gehashten ==-Klassennamen, und erwarten Sie, dass diese über die Zeit driften.
  • Paginierung und Produktseiten erweitern den Scraper. Iterieren Sie den page-Parameter für Breite, dann verwenden Sie denselben Abruf-Helfer wieder, um Name, Preis, Shop, Beschreibung und Bilder von einzelnen Produktseiten zu extrahieren.
  • Bleiben Sie bei öffentlichen Daten. Respektieren Sie Tokopedias ToS und robots.txt, dosieren Sie Ihre Anfragen, exportieren Sie in JSON und CSV und vermeiden Sie alles hinter einem Login oder persönliche Daten.

Häufig gestellte Fragen

Das Scrapen von Tokopedia kann zulässig sein, wenn Sie bei öffentlichen Produktdaten bleiben und Tokopedias Nutzungsbedingungen folgen. Überprüfen Sie zuerst die Regeln der Website und robots.txt, halten Sie Ihr Anfragevolumen vernünftig und vermeiden Sie persönliche oder login-gesperrte Daten. Verwenden Sie das, was Sie sammeln, für legitime Zwecke wie Forschung, Preis-Tracking oder Analyse, nicht für etwas, das gegen Tokopedias Richtlinien oder lokales Recht verstößt.

Warum benötige ich die Crawling API, um Tokopedia zu scrapen?

Tokopedia lädt seine Produkte über JavaScript, sodass eine rohe HTTP-Anfrage normalerweise eine leere Hülle statt der Produktkarten zurückgibt. Die Crawling API rendert die Seite in einem echten Browser, wartet mit ajax_wait und page_wait auf lazy geladene Inhalte und rotiert Residential-IPs, sodass Sie die fertigen Listings erreichen, ohne eine Browser-Fleet oder einen Proxy-Pool zu verwalten.

Welche Datenpunkte kann ich von Tokopedia extrahieren?

Aus Suchlisten können Sie den Produkttitel, Preis, Shop-Namen, Bewertung, Verkaufsanzahl und Link extrahieren. Von einzelnen Produktseiten können Sie Name, Preis, Shop, vollständige Beschreibung und Bild-URLs extrahieren. Zusammen decken diese die öffentlichen Felder ab, die die meisten Teams für Preisüberwachung, Wettbewerber-Recherche und Produkttrendanalyse benötigen.

Warum geben meine Tokopedia-Selektoren leere Werte zurück?

Höchstwahrscheinlich hat sich das Markup geändert. Tokopedias gehashte Klassennamen wie OWkG6oHwAppMn1hIBsC3pQ== werden generiert und ändern sich ohne Ankündigung, sodass Selektoren, die letzten Monat funktioniert haben, brechen können. Inspizieren Sie eine Live-Seite in den Dev Tools Ihres Browsers und aktualisieren Sie die Selektoren. Periodische Selektor-Wartung ist bei jedem Produktions-Scraper normal.

Wie gehe ich mit der Paginierung bei Tokopedia-Suchergebnissen um?

Hängen Sie einen page-Parameter an die Such-URL an, zum Beispiel &page=2, und iterieren Sie von der ersten bis zur letzten gewünschten Seite. Rufen Sie jede Seite über die Crawling API ab, parsen Sie sie mit derselben cheerio-Funktion und sammeln Sie die Ergebnisse in einem Array, bevor Sie exportieren. Stoppen Sie früh, wenn eine Seite nicht abgerufen werden kann, sodass Sie Ihre Daten nicht mit leeren Ergebnissen auffüllen.

Kann ich Käufer- oder Verkäufer-Personendaten von Tokopedia scrapen?

Nein, und diese Anleitung deckt das nicht ab. Käuferkonten, Bestellhistorie, Chat und alles hinter einem Login sind keine öffentlichen Daten. Das Scrapen von login-gesperrten Inhalten, personenbezogenen Daten über Käufer oder Rezensenten über den öffentlichen Rezensionstext hinaus oder das Umgehen von Authentifizierung liegt außerhalb des Geltungsbereichs hier und verstößt gegen Tokopedias Bedingungen. Für breitere Anforderungen lesen Sie den Leitfaden zum E-Commerce-Web-Scraping oder die Übersicht zu Web Scraping für Price Intelligence, und bevorzugen Sie eine sanktionierte Datenvereinbarung für alles über öffentliche Listings hinaus.

Jetzt loslegen

Crawlen Sie jede Website im großen Maßstab, ohne gegen die Infrastruktur zu kämpfen.

Crawlbase übernimmt Proxys, Fingerprints und CAPTCHAs, damit Ihr Team Datenpipelines ausliefert, statt Crawl-Infrastruktur zu pflegen. 1.000 Anfragen kostenlos, keine Karte erforderlich.

Self-Service · Kein Verkaufsgespräch erforderlich · Enterprise-Crawl-Volumen verfügbar