29 Punkte von xguru 2021-11-29 | 12 Kommentare | Auf WhatsApp teilen
  • Wenn man einen Dienst baut, der Google-Suchen in Millionenhöhe ausführt, braucht man eine Alternative, die nicht blockiert wird

  • Am einfachsten ist die Nutzung kostenpflichtiger Proxys, aber das ist ziemlich teuer

→ Deshalb ein unterhaltsamer Artikel, in dem der Autor detailliert erklärt, was er selbst ausprobiert hat

  • Zunächst wurde AWS Lambda + Puppeteer verwendet

→ AWS bietet weltweit 16 Regionen, und wenn man Lambda dreimal ausführt, wird eine neue IP zugewiesen

→ Wenn man gleichzeitig 1000 Lambdas ausführt, nutzt man etwa 250 öffentliche IPs

→ 16 Regionen * 250 ergibt 4000 IP-Adressen, und das reicht aus, um wöchentlich Google-Suchen im Millionenbereich auszuführen

→ Auch auf GCP ausprobiert, und kurioserweise blockiert Google die IPs seiner eigenen Cloud aggressiver als die von AWS

→ Das bezieht sich auf 2019–2020 und kann sich inzwischen geändert haben

  • Diese Methode kann zum Scraping von Google/Bing/Amazon usw. verwendet werden, hat aber Grenzen

→ Wenn Anti-Bot-Firmen wie DataDome, Akamai oder Imperva eingesetzt werden, ist sie nicht anwendbar

→ Über sehr unterschiedliche Methoden des Browser-Fingerprintings wird erkannt, ob es sich um einen Bot handelt

→ Google Picasso, Font/TLS/WebGL Fingerprinting..

→ Tatsächlich nutzen die meisten großen Scraping-Dienste Cloud + Docker-Container und sind daher leicht zu identifizieren

  • Schwer erkennbar und skalierbar: eine Scraping-Infrastruktur

→ Zwei Regeln für erfolgreiches Scraping

  1. Browser-Einstellungen nicht vortäuschen

  2. Am wichtigsten ist, Browser-Einstellungen nur dann vorzutäuschen, „wenn es wirklich niemand bemerkt“

→ Daraus folgt: Am besten verwendet man einfach „echte Geräte“

⇨ 500 günstige Android-Geräte von verschiedenen Herstellern kaufen und günstige Datentarife buchen

⇨ Auf mehrere Städte verteilen (in der Nähe von Antennen)

⇨ Open Source wie DeviceFarmer/stf nutzen, um die Geräte gleichzeitig zu steuern

⇨ Ein leichtgewichtiges OS wie Android Go installieren und alle 5 Minuten in den Flugmodus wechseln, um ständig neue IP-Adressen zu erhalten

⇨ „4G carrier grade NAT“: 4G-Carrier-Grade-NAT wurde entwickelt, um die Erschöpfung von IPv4-Adressen zu verhindern; da Hunderttausende sich eine IP teilen, ist Blockieren praktisch unmöglich

→ Man muss allerdings 500 Android-Geräte kaufen, einen Installationsort haben und die Hardware warten, also ist das ziemlich mühsam

  • Verbesserung: Android emulieren

→ Statt Android-Geräte zu kaufen, könnte man Android-X8, Bluestacks oder den Android Studio Emulator verwenden?

→ Proxidize ermöglicht den Aufbau von 4G-Mobil-Proxys

→ 50 4G-Dongles in einem Server installieren

→ Auf jedem Server 50–100 Android-Geräte emulieren

→ Diese Stationen in 5 Städten aufstellen

→ Diese Stationen mit soliden Kommandos verwalten

12 Kommentare

 
xguru 2021-12-06

Proxy-Server, Scraping-Dienste, Anti-Bot-Software usw. sind im obigen Beitrag gut zusammengefasst.

 
eajrezz 2021-12-06

Ein großartiger Hack!

 
joone 2021-12-04

https://www.diffbot.com/products/crawl/

Es gibt auch einen Service, der Crawling durchführt und Webpages scrapt. Die gescrapten Daten werden ohne unnötige Informationen als JSON gespeichert.

 
benjamin 2021-11-29

Unglaublich...

 
xguru 2021-11-29

Ein ganz anderes Thema, aber …

Es gibt auch Anbieter wie https://serpapi.com/, die Google-Suchen als API verkaufen.

Hier werden allerdings auch Naver-Suchen als API mitverkauft, haha.

https://serpapi.com/naver-search-api

30.000 Suchanfragen pro Monat für den erstaunlichen? Preis von 250 $

 
v08zbv8fvlkjasdflkj 2021-11-29

Ist es überraschend, weil es zu teuer ist? Ich kann das nicht so recht einschätzen.

 
xguru 2021-11-29

Ja, das ist extrem teuer. Im Vergleich zur Nutzung kostenpflichtiger Proxys zum Beispiel.

Da es eine API ist, ist es bequem nutzbar, ohne sich Sorgen um Sperrungen machen zu müssen.

 
hentol 2021-11-29

Mir fallen zwar die hierzulande erhältlichen 0-Won-MVNO-Tarife ein, die ein gewisses Datenvolumen bieten …

Aber weil eine massenhafte Anmeldung schwierig ist, wäre wohl auch das keine einfache Lösung.

 
xguru 2021-11-29

Bei Google Fi sind pro Leitung bis zu vier zusätzliche Daten-SIMs möglich, also wäre so etwas vermutlich auch eine Option.

 
nallwhy 2021-11-29

Als ich früher einmal etwas von naver gescrapt habe,

lief es auf AWS lambda nicht, auf GCP functions aber schon.

Ich dachte, das läge daran, dass der IP-Bereich offen sei, aber offenbar ist das wohl doch nicht so.

 
honore 2021-11-29

Ich mache es bereits mit Methode 1 und habe mir die anderen Ansätze angesehen, um zu sehen, was es noch gibt … daran hätte ich nie gedacht.

 
xguru 2021-11-29

Tatsächlich dürfte auch Variante 1 mit Lambda+Puppeteer auf diese Weise ganz brauchbar sein,

aber im Vergleich zur Proxidize-Methode am Ende wird es je nach Scraping-Umfang vermutlich Kostenunterschiede geben.

Je größer der benötigte Umfang ist, desto stabiler dürfte Proxidize sein, aber für eine einfache Umsetzung scheint auch Variante 1 nicht schlecht zu sein.

Das am Ende vorgestellte https://proxidize.com/ ist interessant.

Es ist eine Hardware- und Software-Lösung, mit der man eigene 4G-Mobilfunk-Proxys erstellen und verwalten kann.

Die Version mit 5 Dongles kostet $399. Wenn man sich die Länderliste der Nutzer ansieht, scheint auch Korea dabei zu sein, also dürfte die Nutzung möglich sein?

Es ist zwar nicht ganz CGNAT, aber es gibt auch Lösungen wie Scrapoxy, mit denen sich ein Pool von Software-Proxys verwalten lässt.