javascript proxy
5/5 - (2 votes)

Salut l’artiste du code ! Prêt à jongler avec les données web comme un vrai chef ? Aujourd’hui, on va s’intéresser au web scraping avec un duo de choc : Proxy et l’API ScrapingBee en JavaScript. D’ailleurs, si ça t’intéresse, j’ai déjà évoqué le sujet du proxy pour le scraping en Python avec diverses biblitothèques.

 

Pourquoi tu vas adorer utiliser Proxy et ScrapingBee ?

  1. Proxy : C’est ton passe-partout secret pour naviguer sur le web sans laisser de traces. Imagine pouvoir accéder à des sites web sans être bloqué, le rêve, non ?
  2. ScrapingBee : C’est ton nouvel outil pour extraire des données web sans te prendre la tête. Tu veux récupérer le contenu d’une page sans te battre contre les CAPTCHAs et les redirections ? ScrapingBee est parfait pour toi.

 

Étape 1 : Mets les bases

D’abord, assure-toi d’avoir Node.js installé sur ton ordi. C’est bon ? Alors, on peut commencer par installer quelques paquets essentiels. Ouvre ton terminal et tape :

npm install axios

Axios, c’est ton allié pour faire des requêtes HTTP plus simplement qu’en jonglant avec les API natives de JavaScript.

 

Étape 2 : Configure ton Proxy avec ScrapingBee

Maintenant, on va se connecter à ScrapingBee. Pour ça, tu auras besoin de ta clé API. Pas encore inscrit ? File sur leur site et génère ta clé, je t’attends.

const axios = require('axios');

const API_KEY = 'TA_CLE_API_ICI';
const url = 'https://app.scrapingbee.com/api/v1/';

let options = {
    params: {
        api_key: API_KEY,
        url: 'https://le-site-que-tu-veux-scrap.com',
        // Ajoute ici d'autres paramètres selon tes besoins, comme 'render_js=true' si tu veux exécuter le JavaScript de la page
    }
};

 

Étape 3 : Lance ta requête magique

Avec ton setup prêt, il est temps d’envoyer ta requête dans l’espace interweb. Avec Axios, c’est un jeu d’enfant. Regarde ça :

axios.get(url, options)
    .then(response => {
        console.log("Et voilà le travail :", response.data);
        // Traite ici les données comme tu le sens
    })
    .catch(error => {
        console.error("Oups, y'a un hic :", error);
    });

Tu vois ? En quelques lignes, tu as envoyé une requête à travers le proxy de ScrapingBee, récupéré les données d’une page web et tu es prêt à les utiliser. Pas mal, hein ?

 

Conseils d’ami pour une récolte de données sans souci

  • Joue avec les paramètres : ScrapingBee offre plein d’options pour personnaliser tes requêtes. Besoin d’exécuter le JavaScript sur la page ? Ajoute render_js=true dans tes paramètres. Le site est un peu lent ? wait=5000 patientera 5 secondes avant de récupérer les données.
  • Gère tes quotas : Fais gaffe à ton utilisation ! ScrapingBee, c’est génial, mais chaque requête compte. Pense à optimiser tes scrapings pour ne pas gaspiller tes crédits.

 

Passe à la vitesse supérieure avec l’API ScrapingBee

Maintenant que tu as les bases, on va monter d’un cran. Tu te sens prêt à devenir un véritable ninja du scraping ? Attrape ton clavier, et c’est parti pour un peu de code ninja avec un exemple plus avancé.

 

Ajouter des en-têtes personnalisés et gérer les cookies

Imaginons que tu veuilles scraper un site qui nécessite un peu plus de finesse, comme passer pour un vrai navigateur ou gérer des sessions avec des cookies. Voici comment tu pourrais faire :

const axios = require('axios');

const API_KEY = 'TA_CLE_API_ICI'; // N'oublie pas de remplacer par ta propre clé
const targetURL = 'https://le-site-que-tu-veux-scrap.com';
const url = `https://app.scrapingbee.com/api/v1/?api_key=${API_KEY}&url=${encodeURIComponent(targetURL)}`;

let options = {
    headers: {
        // Fais-toi passer pour un vrai navigateur
        "X-ScrapingBee-Header": "add",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
    },
    params: {
        // Gère les cookies si nécessaire
        "cookies": "sessionid=xyz123; csrftoken=abc456",
        // Pour exécuter JavaScript
        "render_js": "true",
        // Et si tu as besoin d'attendre que des éléments se chargent
        "wait": 3000,
    }
};

axios.get(url, options)
    .then(response => {
        console.log("Ninja du scraping, voici tes données :", response.data);
        // Maintenant, tu peux faire ce que tu veux de ces données
    })
    .catch(error => {
        console.error("Aïe, quelque chose n'a pas fonctionné :", error);
    });

 

Pourquoi ce code est génial ?

  • En-têtes personnalisés : En ajoutant un User-Agent personnalisé, tu te fais passer pour un vrai navigateur. C’est super utile pour les sites qui bloquent les requêtes qui semblent venir de bots.
  • Gestion des cookies : Parfois, tu as besoin de maintenir une session ou de passer certaines vérifications. Les cookies te permettent de faire ça sans transpirer.
  • Exécuter JavaScript : Beaucoup de sites modernes chargent leurs données avec JavaScript. Activer render_js=true te permet de voir le site après que le JavaScript ait fait son travail.
  • Patience, jeune padawan : Avec wait, tu donnes au site le temps de charger ce dont tu as besoin avant de faire ton scraping. C’est comme donner un coup de baguette magique pour que tout apparaisse.

 

Les cas concrets ou tu peux utiliser un proxy en Javascript

 

Contourner les blocages géographiques

Souvent utilisé pour les sites de torrent comme CPASBIEN ou torrent9 qui peuvent ne pas être accessibles partout dans le monde.

 

Dire adieu aux limites de taux

Quand tu scrapes ou que tu fais des requêtes à gogo, certains sites te blacklistent assez rapidement. Avec un proxy, tu changes d’identité comme de chemise et tu continues ta récolte sans te faire taper sur les doigts.

 

Contournement de CAPTCHA

Ces petites énigmes conçues pour te faire douter de ton humanité. Ils peuvent transformer ton scraping en parcours du combattant. Mais avec un proxy intelligent et quelques astuces dans ta manche, tu peux réduire les chances de te faire bloquer et garder ton humanité intacte.

 

Balancer la charge

Quand tu lances une armée de requêtes, même le plus robuste des serveurs peut commencer à transpirer. En utilisant plusieurs proxies, tu répartis la charge, rendant ton opération de scraping plus efficace et moins susceptible de causer des interruptions de service.

 

Améliorer la confidentialité et la sécurité

Tes requêtes web prennent un détour, masquant ta véritable adresse IP et brouillant les pistes. Résultat ? Tu navigues et scrapes sous le radar, protégé des regards indiscrets.

 

Tester des sites web

Pour les développeurs, voir comment un site se comporte depuis différents endroits du monde est indispensable. Un proxy te permet de tester la performance et l’accessibilité de ton site comme si tu étais dans un autre pays, assurant une expérience utilisateur au top, partout sur la planète.