Comment télécharger un fichier avec Puppeteer ?

Le téléchargement de fichiers avec Puppeteer est très simple. Vous trouverez ci-dessous un exemple montrant comment le faire efficacement sans complexité inutile.

Ici, nous allons automatiser le téléchargement d’un fichier en définissant le comportement de téléchargement et en spécifiant le chemin de téléchargement.

      const puppeteer = require('puppeteer');
const path = require('path');

(async () => {
  const downloadPath = path.resolve('./download'); // Définir le chemin de téléchargement
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();

  // Définir le comportement et le chemin de téléchargement
  await page._client.send('Page.setDownloadBehavior', {
    behavior: 'allow',
    downloadPath: downloadPath
  });

  await page.goto('https://example.com/download', { waitUntil: 'networkidle2' });

  // Cliquer sur le bouton de téléchargement  
  await page.click('#downloadButton'); // Ajuster le sélecteur si nécessaire  
  
  console.log('Téléchargement du fichier lancé.');  
  await browser.close();  
})();

    

Explication :

  1. Chemin de téléchargement: définissez le chemin où le fichier sera téléchargé à l’aide de path.resolve.
  2. Lancement du navigateur: lancez une instance de navigateur sans interface graphique.
  3. Définir le comportement de téléchargement: configurez Puppeteer pour autoriser les téléchargements et spécifiez le répertoire de téléchargement.
  4. Naviguer vers l’URL: accédez à la page Web contenant le lien de téléchargement.
  5. Simuler un clic: cliquez sur le bouton de téléchargement pour lancer le téléchargement du fichier.

Pour une gestion plus avancée des fichiers, vous pouvez vous référer au Navigateur de scraping de Bright Data, qui offre des fonctionnalités améliorées telles que la Résolution de CAPTCHA et la gestion des interactions complexes avec les sites web, ce qui le rend idéal pour les projets de Scraping web à grande échelle.

FAIT CONFIANCE PAR 20,000+ CLIENTS DANS LE MONDE ENTIER

Prêt à commencer ?