Partage
  • Partager sur Facebook
  • Partager sur Twitter

Scrapper une page web

    22 mai 2024 à 11:00:35

    Bonjour,

    Je suis sur un projet de gestion de base de données de produits chimiques et je souhaiterais aller récupérer quelques informations utiles sur le site PubChem pour différents produits chimiques (par exemple: https://pubchem.ncbi.nlm.nih.gov/compound/26049).

    Je souhaiterais, quand je suis sur la page de mon site (développé en local pour l'instant -Wampserver) et quand j'appuie sur un bouton, récupérer des infos comme le "PubChem CID", le "Synonyms" ou "Molecular Formula", etc...

    J'ai bien compris qu'il fallait faire du "webscrapping" mais rien ne fonctionne chez moi.

    J'ai installé Node, mais il m'envoie toujours un message d'erreur (j'ai suivi ce tuto: https://snowpact.com/blog/web-scraping)

    J'ai essayé d'utiliser des iFrames sur ma page, mais il m'envoie des erreurs "CORS".

    J'ai aussi suivi ce tuto (https://openclassrooms.com/fr/courses/7696886-apprenez-a-programmer-avec-javascript/8205925-recuperez-un-element-d-une-page-web) mais chez moi, le script ne fonctionne que si la page est déjà chargée sur la page courante et ça n'est pas ce que je veux: je veux rester sur ma page web et récupérer les infos...

    Quelqu'un peut-il m'aider, siouplait?

    Je tourne en rond depuis 15j et rien ne fonctionne...

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 juin 2024 à 14:29:50

      Hello, 

      Plusieurs choses: 

      1. Vérifie que tu as le droit légal de récup les données de leur site.

      2. Tu as de la chance il n'y a pas de cloudflare devant leur site qui pourrait bloquer ton webscrapping ni de règles CORS dans leur entêtes.

      3. Tu peux faire un fetch vers leur site mais leur page charge les données dynamiquement en javascript donc la page sera vide:

      4. Si tu analyses la trame réseau tu vois qu'ils font un appel à leur API pour récup les données: 

      5. Donc pour avoir les données il suffit de faire un call à : https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/26049/JSON/

      6. Exemple ultra basique pour récupérer les données: 

      async function retrieveData(compoundId){
          const response = await fetch(`https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/${compoundId}/JSON/`);
          return response.json();
      }
      retrieveData(26049).then(a => {
          console.log(a);
      });





      -
      Edité par Anonyme 3 juin 2024 à 14:31:28

      • Partager sur Facebook
      • Partager sur Twitter

      Scrapper une page web

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown