Automatiser le téléchargement de PDF d’un site web vers Google Drive

Dans cet article, nous allons vous montrer comment automatiser la récupération de fichiers PDF publiés sur un site web. Si vous consultez régulièrement un site qui publie des fichiers PDF, ce guide vous permettra de les télécharger automatiquement dans un dossier Google Drive à l’aide de Google Apps Script.

Objectif

L’objectif est de surveiller une page web, d’identifier les nouveaux fichiers PDF, puis de les télécharger automatiquement dans un dossier spécifique de votre Google Drive.

Pré-requis

  • Accès à Google Apps Script : Vous pouvez y accéder via Google Drive en créant un script (Extensions > Apps Script).
  • Une URL cible : L’adresse du site web à surveiller.
  • Un dossier Google Drive : Identifiez l’ID du dossier où les fichiers seront enregistrés.

Étapes de l’automatisation

1. Analyse de la page web

Le script utilise UrlFetchApp pour interroger la page web et récupérer son contenu HTML. Ensuite, une expression régulière détecte les liens vers des fichiers PDF.

2. Vérification des fichiers déjà téléchargés

Le script compare les fichiers trouvés sur le site avec ceux déjà présents dans le dossier Drive. Cela évite les doublons.

3. Téléchargement et enregistrement des PDF

Les nouveaux fichiers PDF sont téléchargés et sauvegardés dans le dossier Drive spécifié.

4. Exécution automatique

Un déclencheur de type “time-driven” permet d’exécuter le script à intervalle régulier (par exemple, chaque jour).

Code complet

Voici un exemple de script entièrement traduit en français :

function verifierNouveauxPDF() {

  const url = 'https://exemple.com'; // Remplacez par l'URL de la page à surveiller

  const idDossier = 'votre-dossier-id'; // Remplacez par l'ID de votre dossier Drive

  const fichiersExistants = recupererFichiersExistants(idDossier);

  try {

    const reponse = UrlFetchApp.fetch(url);

    const html = reponse.getContentText();

    // Rechercher les liens vers les fichiers PDF dans le HTML

    const liensPDF = html.match(/https?:\/\/[^\"']+\.pdf/g);

    if (liensPDF && liensPDF.length > 0) {

      liensPDF.forEach(lien => {

        const nomFichier = lien.split('/').pop();

        if (!fichiersExistants.includes(nomFichier)) {

          telechargerPDF(lien, nomFichier, idDossier);

        }

      });

    }

  } catch (erreur) {

    console.error('Erreur lors de la récupération du site :', erreur);

  }

}

function recupererFichiersExistants(idDossier) {

  const dossier = DriveApp.getFolderById(idDossier);

  const fichiers = dossier.getFiles();

  const nomsFichiers = [];

  while (fichiers.hasNext()) {

    const fichier = fichiers.next();

    nomsFichiers.push(fichier.getName());

  }

  return nomsFichiers;

}

function telechargerPDF(urlPDF, nomFichier, idDossier) {

  const reponse = UrlFetchApp.fetch(urlPDF);

  const blob = reponse.getBlob();

  const dossier = DriveApp.getFolderById(idDossier);

  dossier.createFile(blob).setName(nomFichier);

  console.log(`PDF téléchargé : ${nomFichier}`);

}

Configuration du script

1. Remplacez les valeurs suivantes :

  • https://exemple.com par l’URL de la page web.
  • votre-dossier-id par l’ID du dossier Google Drive où les PDF seront stockés.

L’ID du dossier Drive se trouve dans l’URL du dossier (ex. : https://drive.google.com/drive/folders/**ID**).

2. Planifiez l’exécution automatique :

  • Accédez au menu “Déclencheurs” dans Apps Script.
  • Configurez un déclencheur pour exécuter la fonction verifierNouveauxPDF à intervalle régulier (par exemple, une fois par jour).

Points importants

  • Respect des conditions d’utilisation : Assurez-vous que l’automatisation est autorisée par le site.
  • Gestion des erreurs : Ajoutez des vérifications supplémentaires si le site change fréquemment de structure.
  • Limitation des requêtes : Exécutez le script avec modération pour éviter de surcharger le serveur du site.

Grâce à ce script, vous n’aurez plus à surveiller manuellement un site web pour télécharger les PDF publiés. Tout sera automatisé, avec les fichiers sauvegardés directement dans votre Google Drive. Si vous avez des questions ou souhaitez adapter ce script, n’hésitez pas à demander dans les commentaires de cet article ! 😊