29 points par xguru 2021-11-29 | 12 commentaires | Partager sur WhatsApp
<p>- Si l’on créait un service qui exécute des millions de recherches Google, il faudrait une alternative qui ne se fasse pas bloquer<br /> - Le plus simple est d’utiliser des proxys payants, mais c’est assez coûteux <br /> → D’où ce billet intéressant où l’auteur détaille les approches qu’il a essayées<br /> <br /> - Au départ, il utilisait AWS Lambda + Puppeteer <br /> → AWS propose 16 régions dans le monde, et après 3 exécutions de Lambda, une nouvelle IP est attribuée <br /> → En lançant 1 000 Lambdas en parallèle, on utilise environ 250 IP publiques<br /> → 16 régions * 250 = 4 000 adresses IP, ce qui suffit pour effectuer des recherches Google à l’échelle du million par semaine <br /> → Il a aussi essayé sur GCP, et c’est assez drôle : Google bloque plus agressivement les IP de son propre cloud (par rapport à AWS)<br /> → Cela concerne la période 2019~2020, donc cela a pu changer <br /> <br /> - Cette méthode peut servir à scraper Google / Bing / Amazon, mais elle a ses limites<br /> → Elle ne fonctionne pas si la cible utilise des sociétés anti-bot comme DataDome, Akamai ou Imperva <br /> → Elles détectent si c’est un bot grâce au browser fingerprinting, avec des méthodes extrêmement variées<br /> → Google Picasso, fingerprinting Font/TLS/WebGL...<br /> → En réalité, la plupart des services de scraping à grande échelle utilisent le cloud + des conteneurs Docker, donc ils sont faciles à identifier<br /> <br /> - Une infrastructure de scraping évolutive et difficile à détecter <br /> → Deux règles pour réussir à scraper efficacement <br /> 1. Ne pas falsifier la configuration du navigateur <br /> 2. Et surtout, ne falsifier la configuration du navigateur que si « personne ne peut s’en apercevoir »<br /> → La conclusion est que, pour cela, le mieux est tout simplement d’« utiliser de vrais appareils »<br /> ⇨ Acheter 500 appareils Android bon marché auprès de plusieurs fabricants et souscrire à des forfaits data peu chers<br /> ⇨ Les répartir dans plusieurs villes (près des antennes)<br /> ⇨ Utiliser des outils open source comme DeviceFarmer/stf pour contrôler les appareils en parallèle <br /> ⇨ Installer un OS léger comme Android Go et activer le mode avion toutes les 5 minutes afin d’obtenir sans cesse de nouvelles adresses IP<br /> ⇨ « 4G carrier grade NAT » : un NAT opérateur 4G conçu pour éviter l’épuisement des adresses IPv4, où des centaines de milliers d’utilisateurs partagent la même IP, ce qui rend le blocage impossible<br /> → Il y a toutefois beaucoup d’inconvénients : il faut acheter 500 appareils Android, trouver où les installer, assurer la maintenance matérielle, etc. <br /> <br /> - Amélioration : émuler Android <br /> → Au lieu d’acheter des appareils Android, pourquoi ne pas utiliser Android-X8, Bluestacks ou l’émulateur Android Studio ?<br /> → Proxidize permet de créer des proxys mobiles 4G<br /> → Installer 50 dongles 4G sur un seul serveur<br /> → Émuler 50 à 100 appareils Android sur chaque serveur <br /> → Installer ces stations dans 5 villes <br /> → Gérer ces stations avec des commandes shell robustes </p>

12 commentaires

 
xguru 2021-12-06
<p>- Contourner la détection des bots : comment faire du web scraping sans se faire bloquer https://fr.news.hada.io/topic?id=5304<br /> <br /> Les proxys, les services de scraping, les logiciels anti-bot, etc., sont bien récapitulés dans l’article ci-dessus.</p>
 
eajrezz 2021-12-06
<p>Quel hack génial !</p>
 
joone 2021-12-04
<p>https://www.diffbot.com/products/crawl/<br /> <br /> Il existe aussi des services qui font du scraping de pages web via le crawling. Les données scrapées sont enregistrées en JSON après exclusion des informations inutiles.</p>
 
benjamin 2021-11-29
<p>Ça alors...</p>
 
xguru 2021-11-29
<p>Cela n’a rien à voir, mais… <br /> <br /> Il existe aussi des services comme https://serpapi.com/ qui vendent une API pour la recherche Google. <br /> Mais ici, ils vendent aussi une API pour la recherche Naver, haha.<br /> https://serpapi.com/naver-search-api<br /> <br /> Le prix étonnant ? 250 $ pour 30�000 recherches par mois.</p>
 
v08zbv8fvlkjasdflkj 2021-11-29
<p>Est-ce surprenant parce que c’est trop cher ? Je n’arrive pas à me faire une idée.</p>
 
xguru 2021-11-29
<p>Oui, c’est extrêmement cher. Comparé à l’utilisation de proxys payants, par exemple.<br /> Comme c’est une API, c’est pratique car il n’y a pas à craindre un blocage.</p>
 
hentol 2021-11-29
<p>Dans le contexte français, ça me fait penser aux forfaits mobile MVNO à 0 € qui offrent quand même un certain volume de données...<br /> Mais comme il est difficile de souscrire en masse, ça risque d’être compliqué aussi.</p>
 
xguru 2021-11-29
<p>Dans le cas de Google Fi, il est possible d’ajouter jusqu’à 4 cartes SIM de données supplémentaires sur une seule ligne, donc cela pourrait aussi être une solution.</p>
 
nallwhy 2021-11-29
<p>Quand j’avais déjà tenté de scraper quelque chose sur naver,<br /> je me souviens que cela ne fonctionnait pas sur AWS Lambda mais que ça marchait sur GCP Functions,<br /> et je pensais que c’était parce que leur plage d’IP était ouverte, mais apparemment ce n’est pas le cas non plus.</p>
 
honore 2021-11-29
<p>J'utilise déjà la méthode n°1, donc j'ai regardé quelles autres méthodes existaient… je n'y aurais jamais pensé.</p>
 
xguru 2021-11-29
<p>En fait, la solution n°1 avec Lambda+Puppeteer semble aussi tout à fait correcte si on l’utilise de cette façon,<br /> mais comparée à la méthode Proxidize mentionnée à la fin, il y aura probablement une différence de coût selon l’ampleur du scraping.<br /> Plus le volume nécessaire est important, plus Proxidize sera sans doute stable, mais pour faire simple, la solution n°1 ne me paraît pas mauvaise non plus. <br /> <br /> Le https://proxidize.com/ présenté à la fin est intéressant. <br /> C’est une solution matérielle + logicielle qui permet de créer et gérer soi-même des proxies mobiles 4G.<br /> La version avec 5 dongles est à 399 $. En voyant que la Corée figure dans la liste des pays utilisateurs, j’imagine que c’est utilisable ?<br /> <br /> Ce n’est pas tout à fait du CGNAT, mais il existe aussi des solutions comme Scrapoxy pour gérer tout un pool de proxies logiciels.<br /> - Scrapoxy - outil de gestion de pool de proxies pour web crawlers https://fr.news.hada.io/topic?id=2308</p&gt;