Alle Scraper

E-Commerce

Smyths Toys Scraper

smythstoys.com

100% Erfolgsrate
1s Ø Antwortzeit
Imperva Incapsula Schutz
5.000 Calls Gemessen über

Smyths Toys ist einer der größten Spielwarenhändler in Großbritannien und Irland, und smythstoys.com steht hinter dem Bot-Schutz von Imperva, der einfache HTTP-Clients abweist und sogar einen echten Browser, der die Daten-API des Shops ohne die eigenen Request-Header des Shops aufruft. Ein eigener Plugin-Endpoint liefert das JSON, das der Smyths-Shop für eine Produktseite liest: den Preis mit einem eventuellen früheren Preis, UVP und Rabatt, Status und Meldung zum Lagerbestand für die Lieferung nach Hause, Status und Meldung zum Lagerbestand für Click & Collect, Vorbestellungs-Flags und erwartete Liefertermine, die Altersempfehlung und die Versandart. Übergib einen Produktcode, einen smythstoys.com-Produkt- oder Bundle-Link oder einen product-inventory-API-Link; das JSON kommt unverändert zurück, sodass Code, der für Smyths' eigene Antwort geschrieben wurde, weiter funktioniert. Mit mode=details liefert derselbe Code, was die Produktseite zeigt, ebenfalls als Smyths' eigenes JSON: die Beschreibung, die wichtigsten Merkmale, die Sicherheitshinweise, Marke und EAN sowie die vollständige Bildergalerie mit Videos. Noch keine Codes? Derselbe Endpoint durchsucht Smyths oder listet eine Kategorie und liefert Code, Namen, Link, Preis und Bewertung jedes Produkts, 60 pro Seite und bis zu 600 pro Aufruf. Ein Produkt (Lagerbestand oder Details) oder eine Listenseite ist eine Anfrage, und ein Code, den Smyths nicht kennt, kommt als Smyths' eigener Fehler ohne Kosten zurück. Kein Smyths-Konto, kein Login und kein API-Schlüssel nötig.

Was Sie extrahieren können

  • Produktcode und Typ
  • Preis, Wert, früherer Preis, Folgepreis, UVP und Rabatt in Prozent, in GBP
  • Lagerbestand für die Lieferung nach Hause: Bestandsstatus (auf Lager, ausverkauft), Bestandsmeldung, Liefermeldungen, Vorbestellungs-Flag und erwarteter Liefertermin
  • Lagerbestand für Click & Collect: Bestandsstatus, Bestandsmeldung und Abholmeldung
  • Altersempfehlung, Versandart und Marketingmeldungen
  • Produktseitendetails (mode=details): Name, Marke, EAN, Beschreibung, wichtigste Merkmale, Sicherheitshinweise und die vollständige Bildergalerie mit Videos
  • Such- und Kategorielisten: Produktcode, Name, Link, Preis, Bild, Bewertung und Bundle-Kennzeichen, 60 pro Seite
  • Kategoriepfad und Unterkategorien mit Produktanzahl
  • Smyths' eigenes product-inventory- und Produktseiten-JSON, unverändert

Dedizierte Endpoints

/marketplace/smyths-inventory

Lagerbestand, Details, Suche und Kategorien von Smyths-Toys-Produkten

code (ein Smyths-UK-Produktcode wie 156809, ein smythstoys.com-Produkt- oder Bundle-Link oder ein product-inventory-API-Link) liefert Smyths' product-inventory-JSON: code, type, prices (price, value, wasPrice, thenPrice, rrpPrice, discountedPercentage), hdSection (stockStatus, stockMessage, guestDeliveryMessage, isAvailableForDelivery, isPreOrder, expectedStockDate), ccSection (stockStatus, stockMessage, deliveryMessage), ageSuitabilities, carrierType und Marketingmeldungen; Bundles werden von selbst erkannt. mode=details mit demselben code liefert das JSON, aus dem Smyths seine Produktseite baut: name, brand, ean, description (HTML), webFeatures, die Sicherheitshinweise euWarning, safetyText, urgentSafetyTextHeading und urgentSafetyTextDescription, productImages (thumbnail, original und zoom je Galerieplatz, Videos als youtubeUrl), prices, averageRating, numberOfReviews und breadcrumb; ein Bundle ergänzt subProducts. Ein Code, den Smyths nicht kennt, antwortet mit 502, Smyths' eigenem JSON-Fehler und X-Origin-Status: 500, ohne Abrechnung. query (eine Suche, bis zu Smyths' 240 besten Treffern) oder category (ein Kategoriecode wie SM0601 oder ein Kategorielink) liefert products mit code, name, url, prices, currency, image, averageRating, productType und decals sowie totalResults, totalPages und nextPage; eine Kategorie ergänzt title, breadcrumbs und subcategories mit Produktanzahl. sort, page und max_results (1-600, 60 pro Seite) blättern durch die Seiten; jede Listenseite ist eine Anfrage.

So wird es gescrapt

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/marketplace/smyths-inventory?code=156809"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/marketplace/smyths-inventory",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"code": "156809"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const item = await su.smythsInventory('156809');
console.log(item.prices.price, item.hdSection.stockStatus, item.ccSection.stockStatus);
console.log(item);

Requests sind POST und übergeben ihre Parameter im Query-String. Browser-Rendering findet immer statt - dafür gibt es kein Flag.

Beispielantwort

{
  "code": "156809",
  "type": "REGULAR",
  "ageSuitabilities": [ "5 Years +" ],
  "primaryMarketingMessage": null,
  "hdSection": {
    "stockStatus": "INSTOCK",
    "stockMessage": "In Stock",
    "guestDeliveryMessage": "Free delivery on orders over £20",
    "registeredDeliveryMessage": "Free delivery on orders over £20",
    "isAvailableForDelivery": true,
    "isPreOrder": false,
    "inStore": false,
    "expectedStockDate": null
  },
  "ccSection": {
    "stockStatus": "INSTOCK",
    "stockMessage": "In Stock",
    "deliveryMessage": "FREE collection within 2 hours",
    "storeName": null,
    "isPreOrder": false,
    "expectedStockDate": null,
    "storeClosed": false,
    "isAvailableForDelivery": true
  },
  "carrierType": {
    "name": "REGULAR",
    "isGuestFreeDelivery": false,
    "isRegisteredFreeDelivery": false,
    "isSpecialDelivery": false
  },
  "prices": {
    "price": "£9.99",
    "thenPrice": null,
    "wasPrice": null,
    "rrpPrice": null,
    "value": "9.99",
    "discountedPercentage": null
  },
  "decals": null,
  "paymentMessage": { "currency": "GBP", "country": "GB" }
}

API-Dokumentation lesen

Häufige Fragen

Ist es legal, Smyths Toys zu scrapen?

Das Erheben öffentlich verfügbarer Smyths-Daten wie Produktpreise und Lagerstatus ist in vielen Rechtsordnungen zulässig, aber die Regeln hängen von deinem Land, den erhobenen Daten und ihrer Verwendung ab. ScrapeUnblocker liefert die öffentlichen Produktdaten; was du erhebst und wie du es nutzt, liegt in deiner Verantwortung.

Wie scrape ich Smyths Toys, ohne blockiert zu werden?

Smyths steht hinter dem Bot-Schutz von Imperva. Seine Daten-API antwortet nur einer Sitzung, die Impervas Browser-Prüfung bestanden hat, von derselben IP-Adresse aus und nur, wenn die Anfrage die Header trägt, die Smyths' eigener Shop sendet; alles andere bekommt ein 403 oder eine Anfrage, die bis zum Timeout offen gehalten wird. Das Plugin /marketplace/smyths-inventory hält einen Pool solcher Sitzungen auf ISP-Exits, jede von einem echten Chrome erzeugt und nur für eine begrenzte Zahl von Aufrufen genutzt, und wechselt zu einer frischen Sitzung, wenn Imperva eine ablehnt. Im Benchmark von ScrapeUnblocker lieferte es bei 100 % von 5.000 Aufrufen für 5.000 verschiedene Produkte Daten, etwa 1,0 s pro Aufruf bei 20 gleichzeitigen Anfragen.

Welche Smyths-Toys-Daten kann ich bekommen?

Für jedes Produkt: den Preis mit Wert, früherem Preis, Folgepreis, UVP und Rabatt in Prozent, Status, Meldung und Liefermeldungen zum Lagerbestand für die Lieferung nach Hause, ob es eine Vorbestellung ist und den erwarteten Liefertermin, Status und Abholmeldung für Click & Collect, die Altersempfehlung, die Versandart und eventuelle Marketingmeldungen. Es ist dasselbe JSON, das der Smyths-Shop für seine Produktseite liest. Mit mode=details bekommst du außerdem die Produktseite selbst: Name, Marke, EAN, Beschreibung, wichtigste Merkmale, Sicherheitshinweise und die vollständige Bildergalerie mit Videos.

Kann ich Produktbeschreibung, Merkmale, Sicherheitshinweise und Bilder bekommen?

Ja: rufe denselben Endpoint mit mode=details und dem Produktcode oder -link auf. Er liefert unverändert das JSON, aus dem Smyths seine Produktseite baut: name, brand, ean, description (HTML), webFeatures (die Liste der wichtigsten Merkmale), die Sicherheitshinweise (euWarning, safetyText, urgentSafetyTextHeading, urgentSafetyTextDescription), productImages (jedes Galeriebild als thumbnail, original und zoom, Videos als YouTube-Links), prices, Bewertung und Anzahl der Rezensionen und bei einem Bundle die enthaltenen Produkte (subProducts). Bundles werden von selbst erkannt, und ein Produkt ist eine Anfrage.

Ich habe keine Produktcodes. Wie finde ich sie?

Suche mit query oder liste eine Kategorie mit category: einen Code wie SM0601 (Toys), SM0602 (Baby), SM0603 (Outdoor) oder SM0604 (Gaming & Tech) oder einen beliebigen smythstoys.com-Kategorielink. Jede Liste liefert Codes, Namen, Links, Preise, Bilder und Bewertungen der Produkte und kennzeichnet Bundles, 60 pro Seite und bis zu 600 pro Aufruf, und eine Kategorie nennt außerdem ihre Unterkategorien mit der Zahl ihrer Produkte. Die Suche von Smyths liefert ihre 240 besten Treffer, eine Kategorie dagegen jedes Produkt, das sie enthält, sodass die Hauptkategorien zusammen den ganzen Katalog ergeben. Jede Listenseite ist eine Anfrage; übergib die Codes danach als code für Lagerbestand und Preis.

Ich habe bereits product-inventory-URLs von Smyths. Kann ich sie unverändert nutzen?

Ja: übergib jede unverändert als code an das Plugin. Ein Produkt- oder Bundle-Link und ein reiner Produktcode funktionieren ebenfalls. /getPageSource liefert keine Smyths-Produkt-, Such- oder Kategoriedaten; es beantwortet solche URLs mit einem 400, der den Plugin-Endpoint und die zu verwendenden Parameter nennt (mode=details für eine Produktseite).

Was passiert mit einem Produktcode, den es nicht gibt?

Smyths beantwortet einen unbekannten Code mit seinem eigenen JSON-Fehler und HTTP 500. Das Plugin gibt dieses JSON unverändert mit Status 502 und dem Header X-Origin-Status: 500 weiter, und der Aufruf wird nicht abgerechnet. Smyths sendet denselben Fehler bei einer Störung auf seiner Seite, wiederhole also einen Code, der vorher funktioniert hat.

Wie viel kostet das Scrapen von Smyths Toys?

Ein Produkt (Lagerbestand oder Details) oder eine Listenseite mit bis zu 60 Produkten ist eine Anfrage. 1 Anfrage = 1 Credit, 1,00 EUR pro 1.000 bei Pay as you go, bis hinunter zu etwa 0,55 EUR pro 1.000 im Ultimate-Plan. Blockierungen, Timeouts, Codes, die Smyths nicht kennt, und unbekannte Kategorien werden nicht abgerechnet, und die kostenlose Testphase enthält 500 Anfragen ohne Karte.

Ähnliche Scraper

Smyths Toys sowie weitere Namen und Marken von smythstoys.com gehören ihrem Inhaber und werden hier nur verwendet, um die Website zu bezeichnen, mit der diese API arbeitet. ScrapeUnblocker ist ein unabhängiger Dienst und steht in keiner Verbindung zum Inhaber von smythstoys.com, der ScrapeUnblocker weder unterstützt noch sponsert.

Starten Sie noch heute mit dieser Seite

Kostenloses Kontingent inklusive. Zum Testen ist keine Kreditkarte nötig.