Zurück zum Blog
Die Wissenschaft des Web-Scrapings
Raluca PenciucLast updated on Mar 31, 20268 min read

HTTP-Header für Einsteiger: So nutzt man sie für effektives Web-Scraping

HTTP-Header für Einsteiger: So nutzt man sie für effektives Web-Scraping

Web-Scraping ist ein hervorragendes Werkzeug, um wertvolle Informationen aus dem Internet zu gewinnen, aber seien wir ehrlich: Es kann ziemlich frustrierend sein, wenn deine Scraping-Skripte blockiert werden.

Es ist wie ein Katz-und-Maus-Spiel, bei dem sich Website-Betreiber immer neue Wege ausdenken, um dich fernzuhalten. Aber es gibt eine Geheimwaffe in deinem Werkzeugkasten, die dir die Oberhand verschaffen kann: HTTP-Header und Cookies.

Diese beiden Elemente spielen eine entscheidende Rolle dabei, wie deine Scraping-Skripte mit Websites interagieren, und sie zu beherrschen kann den Unterschied zwischen einem blockierten und einem erfolgreichen Scrape ausmachen.

In diesem Tutorial lüften wir die Geheimnisse von HTTP-Headern und Cookies und zeigen dir, wie du sie nutzen kannst, um deine Scraping-Bemühungen so menschenähnlich wie möglich zu gestalten.

Du lernst die gängigsten Header kennen, die beim Web-Scraping verwendet werden, wie du Header und Cookies aus einem echten Browser abrufen kannst und wie du benutzerdefinierte Header einsetzt, um Sicherheitsmaßnahmen zu umgehen. Also, lass uns loslegen und sehen, wie wir unser Scraping-Spiel auf die nächste Stufe bringen können!

HTTP-Header verstehen

HTTP-Header sind Schlüssel-Wert-Paare, die Sie als Teil einer HTTP-Anfrage oder -Antwort senden. Sie werden durch einen Doppelpunkt und ein Leerzeichen getrennt, und ihre Namen (Schlüssel) sind nicht groß-/kleinschreibungsabhängig.

Du kannst HTTP-Header je nach ihrer Funktion und der Richtung, in die du sie sendest, in verschiedene Kategorien einteilen. Zu diesen Kategorien gehören:

  • allgemeine Header: gelten sowohl für Anfrage- als auch für Antwortnachrichten
  • Anfrage-Header: enthalten weitere Informationen über die Ressource, die du abrufen möchtest, oder über den Client, der die Anfrage stellt
  • Antwort-Header: enthalten zusätzliche Informationen zur Antwort, wie beispielsweise deren Speicherort oder den Server, der sie bereitstellt
  • Entity-Header: enthalten Informationen über den Hauptteil der Ressource, wie z. B. deren Größe oder MIME-Typ
  • Erweiterungs-Header: dienen der Abwärtskompatibilität

HTTP-Header liefern eine Vielzahl von Informationen, darunter die Art der von Ihnen gestellten Anfrage, den von Ihnen verwendeten Browser sowie alle weiteren Informationen, die der Server zur Verarbeitung der Anfrage benötigt.

Sie ermöglichen es Ihnen außerdem, Authentifizierungs- und Sicherheitsinformationen bereitzustellen, Caching und Komprimierung zu steuern sowie die Sprache und den Zeichensatz der Anfrage anzugeben.

Hier sind zum Beispiel die Header, die Chrome beim Aufruf von youtube.com sendet:

:authority: www.youtube.com

:method: GET

:path: /

:scheme: https

accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

accept-encoding: gzip, deflate, br

accept-language: en-US,en;q=0.9

cache-control: no-cache

pragma: no-cache

referer: https://www.google.com/

sec-ch-ua: "Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"

sec-ch-ua-arch: "x86"

sec-ch-ua-bitness: "64"

sec-ch-ua-full-version: "109.0.5414.75"

sec-ch-ua-full-version-list: "Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.75", "Chromium";v="109.0.5414.75"

sec-ch-ua-mobile: ?0

sec-ch-ua-model: ""

sec-ch-ua-platform: "Windows"

sec-ch-ua-platform-version: "15.0.0"

sec-ch-ua-wow64: ?0

sec-fetch-dest: document

sec-fetch-mode: navigate

sec-fetch-site: same-origin

sec-fetch-user: ?1

upgrade-insecure-requests: 1

user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36

x-client-data: CIm2yQEIorbJAQjEtskBCKmdygEI5PDKAQiWocsBCKr2zAEI7oLNAQibiM0BCLqIzQEI9YjNAQ==

Decoded:

message ClientVariations {

  // Active client experiment variation IDs.

  repeated int32 variation_id = [3300105, 3300130, 3300164, 3313321, 3324004, 3330198, 3357482, 3359086, 3359771, 3359802, 3359861];

}

Web-Cookies verstehen

Web-Cookies, auch HTTP-Cookies genannt, sind kleine Textdateien, die eine Website im Browser des Nutzers speichert. Danach werden die Cookies automatisch mitgesendet, sobald der Nutzer eine neue Anfrage an die Website sendet.

Sie sind eindeutig identifizierbar und lassen sich wie folgt unterteilen:

  • Sitzungs-Cookies: Sie sind temporär und verfallen, wenn der Nutzer den Browser schließt
  • dauerhafte Cookies: Sie haben ein bestimmtes Ablaufdatum und verbleiben auf dem Gerät des Nutzers, bis sie ablaufen oder vom Nutzer gelöscht werden.

Websites verwenden Web-Cookies, um das Nutzererlebnis zu personalisieren. Dazu kann gehören, sich die Anmeldedaten zu merken und den Inhalt des Warenkorbs zu speichern, um zu verstehen, wie Nutzer mit der Website interagieren, und um gezielte Werbung anzuzeigen.

Nehmen wir auch hier youtube.com als Beispiel, um zu sehen, was Cookies speichern:

cookie: CONSENT=YES+srp.gws-20210816-0-RC3.ro+FX+801; __Secure-3PAPISID=jG4abs_wYhyzcDG5/A2yfWlePlb1U9fglf; VISITOR_INFO1_LIVE=pJuwGIYiJlE; __Secure-3PSIDCC=AEf-XMRV_MjLL0AWdGWngxFHvNUF3OIpk3_jdeUwRiZ76WZ3XsSY0Vlsl1jM9n7FLprKTqFzvw; __Secure-3PSID=RAi8PYLbf3qLvF1oEav9BnHK_eOXwimNM-0xwTQPj1-QVG1Xwpz17T4d-EGzT6sVps1PjQ.; YSC=4M3JgZEwyiA; GPS=1; DEVICE_INFO=ChxOekU1TURJMk1URTBOemd5TWpJeU5qVTJOdz09EOvgo54GGOvgo54G; PREF=tz=Europe.Bucharest&f6=40000000&f4=4000000; CONSISTENCY=ACHmjUr7DnoYSMf5OL-vaunKYfoLGz1lWYRUZRepFyIBDRpp_jrEa85E4wgRJLJ2j15l688hk9IVQu7fIjYXo7sdsZamArxVHTMuChgHd22PkX_mbfifnMjyp4OX2swyQJRS-8PE6cOCt_6129fGyBs; amp_adc4c4=Ncu7lbhgeiAAYqecSmyAsS.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1gn4emd4v.1gn4en556.0.4.4

Die Bedeutung von Headern und Cookies beim Web Scraping

Beim Web-Scraping können Sie Header und Cookies nutzen, um Sicherheitsmaßnahmen zu umgehen und auf eingeschränkte Inhalte zuzugreifen sowie Informationen bereitzustellen, die dabei helfen, Ihr Scraping-Skript als legitimen Browser zu identifizieren.

Wenn Sie beispielsweise den richtigen User-Agent-Header angeben (weitere Details im folgenden Abschnitt), können Sie Ihr Skript so erscheinen lassen, als wäre es ein Chrome-Browser, was Ihnen helfen kann, einer Erkennung durch die Website zu entgehen.

Außerdem kann Ihr Scraper durch das Speichern und Senden von Cookies auf Inhalte zugreifen, die nur angemeldeten Benutzern zur Verfügung stehen. Da die Website Cookies verwendet, um gezielte Werbung anzuzeigen, können Sie diese auch nutzen, um genauere Daten zu extrahieren und ein besseres Verständnis der Website zu erlangen.

Neben dem Einsatz von HTTP-Headern und Cookies sollten Sie auch einige der in diesem Leitfaden aufgeführten, sehr nützlichen Best Practices für das Web Scraping berücksichtigen.

Häufig verwendete Header beim Web Scraping

Es gibt viele verschiedene Header, die beim Web Scraping verwendet werden können, aber einige der am häufigsten verwendeten sind:

User-Agent

Er dient dazu, den Browser und das Betriebssystem zu identifizieren, die vom Client verwendet werden, der die Anfrage stellt. Diese Informationen werden von Servern genutzt, um festzustellen, welchen Browser und welches Betriebssystem der Client verwendet, damit die entsprechenden Inhalte und Funktionen bereitgestellt werden können.

Die User-Agent-Zeichenkette enthält Informationen wie den Namen des Browsers, die Version und die Plattform. Eine User-Agent-Zeichenkette für Google Chrome unter Windows könnte beispielsweise so aussehen:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36

Beim Web-Scraping können Sie durch die Angabe eines User-Agent, der zu einem gängigen Webbrowser gehört, Ihr Skript so erscheinen lassen, als wäre es ein Browser, der von legitimen Nutzern häufig verwendet wird, wodurch die Wahrscheinlichkeit sinkt, dass es blockiert wird.

Accept

Er wird verwendet, um die Arten von Inhalten anzugeben, die der Browser als Antwort auf eine HTTP-Anfrage akzeptieren möchte, wie z. B. Text, Bilder, Audio oder Video. Ein Accept-Header könnte wie folgt aussehen:

Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

Beim Web-Scraping können Sie durch die Angabe des richtigen Accept-Headers sicherstellen, dass Ihr Skript die richtigen Daten erhält. Wenn Sie beispielsweise eine HTML-Seite scrapen möchten, können Sie den Accept-Header als text/html angeben.

Einige Websites können diesen Header jedoch nutzen, um Scraper zu erkennen. Daher ist es wichtig, ihn mit Bedacht und nur bei Bedarf zu verwenden.

Accept-Language

Dieser Header gibt die bevorzugte Sprache des Inhalts an, den der Browser als Antwort auf eine HTTP-Anfrage akzeptieren möchte. Der Accept-Language-Header wird von Servern verwendet, um zu bestimmen, welche Sprache an den Client gesendet werden soll.

Ein Browser, der eine HTML-Seite auf Englisch anfordert, sendet möglicherweise einen Accept-Language-Header, der wie folgt aussieht:

Accept-Language: en-US,en;q=0.9

Websites verwenden diesen Header, um nach einer Anfrage Cookies an einen Client zu senden. Ein Cookie-Header könnte wie folgt aussehen:

Cookie: session_id=1234567890; user_id=johndoe

Beim Web Scraping können Sie diesen Header verwenden, um Session-Cookies zu übermitteln und auf Inhalte zuzugreifen, die nur für angemeldete Benutzer verfügbar sind. Ein weiterer Anwendungsfall wäre die Verwendung von persistenten Cookies, um personalisierte Ergebnisse zu erhalten.

Referer

Dieser Header gibt die URL der vorherigen Webseite an, von der aus ein Link zur aktuellen Seite verfolgt wurde. Er wird von Servern verwendet, um die Herkunft der Anfrage zu verfolgen und den Kontext der Anfrage zu verstehen.

Wenn ein Benutzer beispielsweise auf einen Link von einer Webseite zu einer anderen Webseite klickt, sendet der Browser eine Anfrage an die zweite Webseite mit der URL der ersten Webseite im Referer-Header. Die Anfrage an die zweite Webseite hätte also einen Referer-Header, der wie folgt aussieht:

Referer: https://www.example.com/

Beim Web-Scraping können Sie den Referer-Header verwenden, um auf Websites zuzugreifen, die keine direkten Anfragen zulassen.

Abrufen von Headern und Cookies aus einem echten Browser

Aber genug der Theorie. Schauen wir uns an, wie Sie HTTP-Header und Web-Cookies extrahieren können, die an eine Website gesendet werden.

Zurück zu unserem Beispiel: Navigieren Sie in Ihrem echten Browser zu youtube.com. Klicken Sie dann mit der rechten Maustaste auf eine beliebige Stelle auf der Seite und wählen Sie die Option „Untersuchen“. Wenn sich die Entwicklertools öffnen, wechseln Sie zur Registerkarte „Netzwerk“.

Nach dem Aktualisieren der Seite sollten Sie sehen, wie die Anfragen in Echtzeit geladen werden. Klicken Sie auf die erste (und wichtigste) davon, und es erscheint ein zusätzlicher Tab.

Hier sehen Sie alle Details der von Ihnen gesendeten Anfrage: URL, Methode, Statuscode, Remote-Adresse und vor allem: die gesuchten Anfrage- und Antwort-Header.

Verwendung benutzerdefinierter Header beim Web-Scraping

  • Verwenden Sie httpbin.org, um die von einem Browser gesendeten Header anzuzeigen
  • Wählen Sie eine Programmiersprache aus und senden Sie eine einfache GET-Anfrage, um die Header anzuzeigen
  • Übergeben Sie die benutzerdefinierten Header, die Sie erfasst haben
  • Wiederholen Sie den Vorgang für Node.js und Python
  • Schreibe den Abschnitt für WSA um - Verlinke auf die API-Dokumentation - Beschreibe die Funktion benutzerdefinierter Header

Schauen wir uns nun an, wie wir diese Header nutzen können, um unsere Scraper zu verbessern. Für diesen Teil nehmen wir als Beispiel eine einfache Mirroring-Website, die uns die von uns gesendeten Header direkt anzeigt: https://httpbin.org/headers.

Kopieren Sie den Inhalt des Objekts „headers“ und beginnen wir mit dem Schreiben des Codes.

Node.js

Nachdem Sie sichergestellt haben, dass Ihre Node.js-Umgebung korrekt eingerichtet und Ihr Projekt initialisiert ist, führen Sie den folgenden Code aus:

import got from 'got';

(async () => {

    const response = await got('https://httpbin.org/headers')

    console.log(response.body)

})()

Auf diese Weise können wir sehen, wie die grundlegendste GET-Anfrage aussieht. Das Ergebnis sollte lauten:

{

  "headers": {

    "Accept-Encoding": "gzip, deflate, br",

    "Host": "httpbin.org",

    "User-Agent": "got (https://github.com/sindresorhus/got)",

    "X-Amzn-Trace-Id": "Root=1-63c93ff5-0c352d6319620b3d6b46df02"

  }

}

Das sieht ganz anders aus als das, was wir in unserem Browser gesehen haben. Allein anhand des User-Agent kann ein Server sehr leicht erkennen, dass es sich um eine automatisierte Anfrage handelt.

Übergeben wir nun unsere benutzerdefinierten Header und senden wir die Anfrage erneut:

import got from 'got';

(async () => {

    const custom_headers = {

        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",

    	  "Accept-Encoding": "gzip, deflate, br",

    	  "Accept-Language": "en-US,en;q=0.9",

    	  "Cache-Control": "no-cache",

    	  "Cookie": "amp_d915a9=sd12OA1w0P4xMKsMYSmY9n.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1ggrl757h.1ggrl75ci.0.1o.1o; amp_adc4c4=P3ZIfUgU8qzSHI-y0gZvbk.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1gn51hk3v.1gn51lql7.0.e.e",

    	  "Host": "httpbin.org",

    	  "Pragma": "no-cache",

    	  "Sec-Ch-Ua": "\"Not_A Brand\";v=\"99\", \"Google Chrome\";v=\"109\", \"Chromium\";v=\"109\"",

    	  "Sec-Ch-Ua-Mobile": "?0",

    	  "Sec-Ch-Ua-Platform": "\"Windows\"",

    	  "Sec-Fetch-Dest": "document",

    	  "Sec-Fetch-Mode": "navigate",

    	  "Sec-Fetch-Site": "none",

    	  "Sec-Fetch-User": "?1",

    	  "Upgrade-Insecure-Requests": "1",

    	  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",

    	  "X-Amzn-Trace-Id": "Root=1-63c93e34-1ad0141279d49bfc28fb058e"

    }

    const response = await got('https://httpbin.org/headers', {

        headers: custom_headers

    })

    console.log(response.body)

})()

Wenn Sie das Skript erneut ausführen, sollten Sie feststellen, dass unsere Anfrage nun so aussieht, als wäre sie von einem echten Chrome-Browser gesendet worden, obwohl wir keinen tatsächlich geöffnet haben.

Python

Versuchen wir nun dasselbe in Python. Auch wenn die Syntax und die Bibliotheken unterschiedlich sind, ist das Prinzip genau dasselbe.

import requests

url = 'https://httpbin.org/headers'

headers = {

	"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",

	"Accept-Encoding": "gzip, deflate, br",

	"Accept-Language": "en-US,en;q=0.9",

	"Cache-Control": "no-cache",

	"Cookie": "amp_d915a9=sd12OA1w0P4xMKsMYSmY9n.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1ggrl757h.1ggrl75ci.0.1o.1o; amp_adc4c4=P3ZIfUgU8qzSHI-y0gZvbk.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1gn51hk3v.1gn51lql7.0.e.e",

	"Host": "httpbin.org",

	"Pragma": "no-cache",

	"Sec-Ch-Ua": "\"Not_A Brand\";v=\"99\", \"Google Chrome\";v=\"109\", \"Chromium\";v=\"109\"",

	"Sec-Ch-Ua-Mobile": "?0",

	"Sec-Ch-Ua-Platform": "\"Windows\"",

	"Sec-Fetch-Dest": "document",

	"Sec-Fetch-Mode": "navigate",

	"Sec-Fetch-Site": "none",

	"Sec-Fetch-User": "?1",

	"Upgrade-Insecure-Requests": "1",

	"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",

	"X-Amzn-Trace-Id": "Root=1-63c93e34-1ad0141279d49bfc28fb058e"

}

response = requests.get(url, headers=headers)

print(response.text)

Das Ergebnis nach Ausführung des Skripts sieht unabhängig von der verwendeten Programmiersprache gleich aus.

Benutzerdefinierte Header in WebScrapingAPI

Jede seriöse Scraping-API sollte die leistungsstarke Funktion bieten, benutzerdefinierte HTTP-Header und Cookies an eine Anfrage zu übergeben. Der Standard kann je nach API variieren, daher solltest du immer zuerst die offizielle Dokumentation konsultieren.

Standardmäßig stellt WebScrapingAPI bei jeder Anfrage eine Reihe benutzerdefinierter Header bereit. Zufällige User-Agent-Header wären nur eines der Beispiele.

Da Websites jedoch sehr komplex oder einfach veraltet sein können, haben Sie die Freiheit, dieses Verhalten zu deaktivieren und Ihre Anfrage vollständig anzupassen. Stellen Sie einfach sicher, dass Sie sich zuerst einen API-Schlüssel besorgen, und führen Sie dann den folgenden Code aus:

import got from 'got';

(async () => {

    const response = await got("https://api.webscrapingapi.com/v1", {

        searchParams: {

            api_key: "YOUR_API_KEY",

            url: "https://httpbin.org/headers",

            keep_headers: '0',

        },

        headers: {

            "Wsa-Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",

            "Wsa-Accept-Encoding": "gzip, deflate, br",

            "Wsa-Accept-Language": "en-US,en;q=0.9",

            "Wsa-Cache-Control": "no-cache",

            "Wsa-Cookie": "amp_d915a9=sd12OA1w0P4xMKsMYSmY9n.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1ggrl757h.1ggrl75ci.0.1o.1o; amp_adc4c4=P3ZIfUgU8qzSHI-y0gZvbk.MXVDWTJjd3BXdmRkQ3J0YUpuTkx3OE5JcXVKMw==..1gn51hk3v.1gn51lql7.0.e.e",

            "Wsa-Pragma": "no-cache",

            "Wsa-Sec-Ch-Ua": "\"Not_A Brand\";v=\"99\", \"Google Chrome\";v=\"109\", \"Chromium\";v=\"109\"",

            "Wsa-Sec-Ch-Ua-Mobile": "?0",

            "Wsa-Sec-Ch-Ua-Platform": "\"Windows\"",

            "Wsa-Sec-Fetch-Dest": "document",

            "Wsa-Sec-Fetch-Mode": "navigate",

            "Wsa-Sec-Fetch-Site": "none",

            "Wsa-Sec-Fetch-User": "?1",

            "Wsa-Upgrade-Insecure-Requests": "1",

            "Wsa-User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",

            "Wsa-X-Amzn-Trace-Id": "Root=1-63c93e34-1ad0141279d49bfc28fb058e"

        }

    })

    console.log(response.body)

})()

In diesem Fall müssen wir laut API-Dokumentation das Präfix „Wsa-“ an den Namen eines Headers anhängen, um ihn an die Anfrage zu übergeben. Diese Maßnahme wurde implementiert, um zu verhindern, dass unbeabsichtigte Header übergeben werden, beispielsweise wenn die API-Anfrage von einem Browser gesendet wird.

Fazit

Dieser Artikel hat einen Überblick über die Bedeutung und Verwendung von HTTP-Headern und Web-Cookies beim Web-Scraping gegeben.

Wir haben erläutert, was Header und Cookies sind, wie Sie sie nutzen können, um auf eingeschränkte Inhalte zuzugreifen und Ihr Scraping-Skript wie einen legitimen Browser erscheinen zu lassen, sowie wie sie für Tracking und Analysen eingesetzt werden können.

Außerdem haben wir einige der beim Web-Scraping häufig verwendeten Header vorgestellt und erklärt, wie man Header und Cookies von einem echten Browser abruft. Anschließend haben wir anhand von Code-Beispielen veranschaulicht, wie man sie in Ihren Scraping-Skripten einsetzt.

Durch das Verständnis und die effektive Nutzung von Headern und Cookies können Sie die Effizienz Ihrer Web-Scraping-Aktivitäten verbessern. Mit diesem Wissen können Sie Ihre Scraping-Fähigkeiten auf die nächste Stufe heben und wertvolle Informationen aus dem Web extrahieren.

Über den Autor
Raluca Penciuc, Full-Stack-Entwickler @ WebScrapingAPI
Raluca PenciucFull-Stack-Entwickler

Raluca Penciuc ist Full-Stack-Entwicklerin bei WebScrapingAPI. Sie entwickelt Scraper, verbessert Umgehungsstrategien und findet zuverlässige Wege, um die Erkennung auf Zielwebsites zu verringern.

Los geht’s

Sind Sie bereit, Ihre Datenerfassung zu erweitern?

Schließen Sie sich den über 2.000 Unternehmen an, die WebScrapingAPI nutzen, um Webdaten im Unternehmensmaßstab ohne zusätzlichen Infrastrukturaufwand zu extrahieren.