← Alle Beiträge

Chrome-Extension (Beta): Jeder Page-Request als API-Call

Unsere Chrome-Extension in der Beta findet den Request mit den Daten einer Seite und kopiert ihn als FourA-Call für curl, Python, Node oder MCP, inklusive Header und Cookies.

Was gibt es Neues?

Du kennst das Prozedere. DevTools öffnen, neu laden, durch Dutzende von Requests scrollen, bis einer davon die gewünschten Preise enthält, Rechtsklick, Copy as cURL. Dann beginnt die eigentliche Arbeit: Headers entfernen, die nur in Chrome Sinn ergeben, den Aufruf für deinen eigenen Client umschreiben und prüfen, ob er noch antwortet, wenn er nicht aus deinem Browser stammt.

Die FourA Chrome Extension, jetzt in der Beta, verkürzt das auf wenige Klicks. Sie fügt neben Network einen FourA-Tab hinzu, der die Requests der Seite auflistet, den Request mit dem gesuchten Text findet und ihn als fertigen Aufruf für Single, Proxy Finder oder Browser kopiert, in curl, Python, Node oder MCP. Dieselbe Extension bietet ein Popup, über das du Chrome selbst über einen deiner proxy port-Nutzer tunneln kannst.

Sie ist noch nicht im Chrome Web Store verfügbar. Du lädst sie unter Tools im Dashboard herunter und aktivierst sie im Entwicklermodus (Chrome, Version 116 oder neuer). Die Extension ist kostenlos. Traffic über den Tunnel wird auf das Proxy-Kontingent deines Tarifs angerechnet, und Aufrufe aus den DevTools kosten die regulären API-Gebühren.

So funktioniert es

Öffne die DevTools auf der Zielseite und wähle den FourA-Tab. Lade die Seite neu, und der Tab listet Requests wie im Network-Tab auf, wobei Werbung und Analytics standardmäßig ausgeblendet sind und ein Schalter für This site only existiert. Gib einen Preis, einen Produktnamen oder beliebigen sichtbaren Text in Find in responses ein, und das Tool zeigt dir die Requests, deren Response den Text enthält. Oft entdeckst du so, dass die Seite über einen direkt abrufbaren JSON-Endpoint gerendert wird.

Wähle den Request aus, entscheide dich unter FourA call für eine Engine und kopiere den Code. Hier ist die curl-Variante für einen JSON-Request auf einer Shop-Seite (gekürzt: die echte Kopie enthält alle von der Seite gesendeten Header):

curl https://api.foura.ai/api/single \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "GET",
  "url": "https://shop.example.com/api/products?category=coffee&page=2",
  "headers": [
    ["accept", "application/json"],
    ["referer", "https://shop.example.com/coffee"],
    ["accept-language", "en-GB,en;q=0.9"]
  ],
  "browser": "Chrome",
  "os": "macOS",
  "unblocker": true
}'

Drei Dinge in diesem Aufruf sind bewusst gewählt. Header werden als Liste von Paaren übertragen, genau in der Reihenfolge der Seite, was dem Format von Single entspricht. Header, die Chrome für die eigene Verbindung setzt (host, content-length, accept-encoding, connection und einige weitere), werden verworfen. Werden sie kopiert, schlägt der nächste Client fehl, der den Aufruf sendet. Zudem fragen browser und os das browser profile an, das zu deinem aktuellen Chrome passt. Die Version wird absichtlich weggelassen: Der Aufruf erhält die neueste bei uns verfügbare Version, statt an einer nicht unterstützten Version zu scheitern.

Das MCP-Format besteht aus dem Tool-Namen (foura_single), gefolgt von demselben JSON, bereit für Agenten, die mit unserem MCP server kommunizieren.

Danach folgen zwei Buttons. Open in the playground lädt den Aufruf in den Dashboard-Playground, mit demselben Key vorausgewählt, falls es einer von deinen ist. Run through FourA sendet den Request und stellt "The browser got" sowie "FourA got" nebeneinander. So siehst du direkt, ob unsere Antwort mit der der Seite übereinstimmt, bevor du eine Zeile Code schreibst.

Impact

Der manuelle Weg ist gut dokumentiert. ScrapingBee's tutorial braucht fünf Schritte, nur um den cURL-Befehl aus Chrome zu holen, und weist darauf hin, dass die Kopie jeden Header und jedes Cookie enthält, die der Browser gesendet hat. Dort starten die meisten Scraper. Es ist allerdings nur die halbe Arbeit, da die Kopie lediglich beweist, dass der Request aus deinem Browser funktioniert und sonst nirgends.

Der FourA-Tab deckt beide Schritte an einem Ort ab. Du findest den Request anhand seiner Rückgabe, statt URLs zu erraten, du erhältst einen Aufruf im passenden API-Format, und ein Klick zeigt, ob er über unsere Infrastruktur funktioniert. Das lohnt sich besonders bei Seiten, auf denen die Daten über Requests ankommen, deren URLs nichts verraten.

Wir haben noch keine Zahlen zur Zeitersparnis. Es ist eine Beta, und der eigentliche Maßstab ist dein nächstes Projekt.

For Power Users

Stelle die Engine auf Proxy Finder um. Das Panel verpackt denselben Request und bietet ein Exit country an:

{
  "request": {
    "method": "GET",
    "url": "https://shop.example.com/api/products?category=coffee&page=2",
    "headers": [["accept", "application/json"]],
    "unblocker": true
  },
  "exitCountries": ["DE"]
}

exitCountries ist eine strikte Allowlist. Der Request fällt nie auf ein anderes Land zurück, und das Land, das geantwortet hat, wird als exitCountry zurückgegeben. Es ist ein Tarif-Feature, daher antwortet ein Plan ohne Country Targeting mit einer entsprechenden Ablehnung.

Browser erhält eine andere Form, da er Seiten öffnet, statt Requests zu senden. Er nimmt Header als Objekt an, wandelt den Cookie-Header der Seite in eine auf den Host beschränkte Cookie-Liste um und lässt user-agent sowie die Client-Hint-Header weg, da die Engine eigene sendet (bei aktivierter Profil-Option sendet sie stattdessen den User-Agent dieses Fensters). Er wiederholt nur einen GET ohne Body. Ein POST aus einem Suchformular gehört zu Single, wo ein JSON-Body als Objekt reist und alles andere als der exakte String, den die Seite gesendet hat.

Klicke mit der rechten Maustaste auf einen beliebigen Request für dieselben Kopieroptionen plus URL kopieren und Response kopieren. Der API-Key für Durchläufe befindet sich in den Settings des Tabs und bleibt aktiv, bis Chrome geschlossen wird, es sei denn, du aktivierst Key auf diesem Computer behalten.

Eine ausdrückliche Warnung: Ein mit Cookies kopierter Aufruf wiederholt die Session, in der du angemeldet bist. Behandle ihn wie ein Passwort und halte ihn aus Tickets, Chats und öffentlichen Repositories heraus.

Auch das Popup verdient eine Erwähnung. Es misst die Adresse, die eine Website durch den Tunnel sieht, anstatt sie aus deinen Einstellungen auszulesen. Wenn diese Adresse deiner eigenen entspricht, meldet es Nicht weitergeleitet. Wenn das Symbol mit einer Zahl rot wird, hat der Proxy in der letzten Minute so viele Verbindungen abgelehnt, und das Popup nennt den Grund. Die Username-Optionen hinter der Location-Seite sind dieselben, die der Proxy-Port dokumentiert.

Was kommt als Nächstes

Die Extension bleibt eine Beta, die über das Dashboard installiert wird, bis wir sie für fertig erklären, und wir legen kein Datum für ein Listing im Chrome Web Store fest. Chrome ist der einzige Browser, für den sie gebaut und getestet wurde. Der Setup Guide beschreibt den aktuellen Stand; welche Änderungen als Nächstes folgen, hängt davon ab, worauf du stößt, wenn du den FourA-Tab auf eine echte Aufgabe anwendest.

Wenn sich eine Seite das nächste Mal gegen deinen Parser wehrt, öffne die DevTools, bevor du das HTML öffnest. Der günstigste Scraper ist oft derjenige, der den Request aufruft, den die Seite ohnehin schon gemacht hat.