


Imaginez créer une plate-forme de commerce électronique sur laquelle nous pouvons facilement récupérer des données sur les produits en temps réel auprès de grands magasins comme eBay, Amazon et Flipkart. Bien sûr, il existe Shopify et des services similaires, mais soyons honnêtes : il peut sembler un peu fastidieux d'acheter un abonnement uniquement pour un projet. Alors, je me suis dit, pourquoi ne pas gratter ces sites et stocker les produits directement dans notre base de données ? Ce serait un moyen efficace et rentable d'obtenir des produits pour nos projets de commerce électronique.
Qu’est-ce que le Web Scraping ?
Le Web scraping consiste à extraire des données de sites Web en analysant le HTML des pages Web pour lire et collecter du contenu. Cela implique souvent d'automatiser un navigateur ou d'envoyer des requêtes HTTP au site, puis d'analyser la structure HTML pour récupérer des informations spécifiques telles que du texte, des liens ou des images. Puppeteer est une bibliothèque utilisée pour gratter les sites Web.
?Qu'est-ce que le Marionnettiste ?
Puppeteer est une bibliothèque Node.js. Elle fournit une API de haut niveau pour contrôler les navigateurs Chrome ou Chromium sans tête. Headless Chrome est une version de Chrome qui exécute tout sans interface utilisateur (parfait pour exécuter des choses en arrière-plan).
Nous pouvons automatiser diverses tâches à l'aide du marionnettiste, telles que :
- Web Scraping : L'extraction de contenu de sites Web implique d'interagir avec le HTML et le JavaScript de la page. Nous récupérons généralement le contenu en ciblant les sélecteurs CSS.
- Génération PDF : la conversion de pages Web en PDF par programmation est idéale lorsque vous souhaitez générer directement un PDF à partir d'une page Web, plutôt que de prendre une capture d'écran puis de convertir la capture d'écran en PDF. (P.S. Toutes mes excuses si vous avez déjà des solutions pour cela).
- Tests automatisés : Exécution de tests sur des pages Web en simulant les actions des utilisateurs comme cliquer sur des boutons, remplir des formulaires et prendre des captures d'écran. Cela élimine le processus fastidieux consistant à parcourir manuellement de longs formulaires pour s'assurer que tout est en place.
?Comment débuter avec le marionnettiste ?
Tout d'abord, nous devons installer la bibliothèque, allez-y et faites-le.
Utiliser npm :
npm i puppeteer # Downloads compatible Chrome during installation. npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.
Utiliser du fil :
yarn add puppeteer // Downloads compatible Chrome during installation. yarn add puppeteer-core // Alternatively, install as a library, without downloading Chrome.
Utilisation de pnpm :
pnpm add puppeteer # Downloads compatible Chrome during installation. pnpm add puppeteer-core # Alternatively, install as a library, without downloading Chrome.
? Exemple pour démontrer l'utilisation du marionnettiste
Voici un exemple de comment gratter un site Web. (P.S. J'ai utilisé ce code pour récupérer des produits du site Myntra pour mon projet e-commerce.)
const puppeteer = require("puppeteer"); const CategorySchema = require("./models/Category"); // Define the scrape function as a named async function const scrape = async () => { // Launch a new browser instance const browser = await puppeteer.launch({ headless: false }); // Open a new page const page = await browser.newPage(); // Navigate to the target URL and wait until the DOM is fully loaded await page.goto('https://www.myntra.com/mens-sport-wear?rawQuery=mens%20sport%20wear', { waitUntil: 'domcontentloaded' }); // Wait for additional time to ensure all content is loaded await new Promise((resolve) => setTimeout(resolve, 25000)); // Extract product details from the page const items = await page.evaluate(() => { // Select all product elements const elements = document.querySelectorAll('.product-base'); const elementsArray = Array.from(elements); // Map each element to an object with the desired properties const results = elementsArray.map((element) => { const image = element.querySelector(".product-imageSliderContainer img")?.getAttribute("src"); return { image: image ?? null, brand: element.querySelector(".product-brand")?.textContent, title: element.querySelector(".product-product")?.textContent, discountPrice: element.querySelector(".product-price .product-discountedPrice")?.textContent, actualPrice: element.querySelector(".product-price .product-strike")?.textContent, discountPercentage: element.querySelector(".product-price .product-discountPercentage")?.textContent?.split(' ')[0]?.slice(1, -1), total: 20, // Placeholder value, adjust as needed available: 10, // Placeholder value, adjust as needed ratings: Math.round((Math.random() * 5) * 10) / 10 // Random rating for demonstration }; }); return results; // Return the list of product details }); // Close the browser await browser.close(); // Prepare the data for saving const data = { category: "mens-sport-wear", subcategory: "Mens", list: items }; // Create a new Category document and save it to the database // Since we want to store product information in our e-commerce store, we use a schema and save it to the database. // If you don't need to save the data, you can omit this step. const category = new CategorySchema(data); console.log(category); await category.save(); // Return the scraped items return items; }; // Export the scrape function as the default export module.exports = scrape;
?Explication :
- Dans ce code, nous utilisons Puppeteer pour récupérer les données produit d'un site Web. Après avoir extrait les détails, nous créons un schéma (CategorySchema) pour structurer et enregistrer ces données dans notre base de données. Cette étape est particulièrement utile si nous souhaitons intégrer les produits scrapés dans notre boutique e-commerce. Si le stockage des données dans une base de données n'est pas requis, vous pouvez omettre le code lié au schéma.
- Avant de scraper, il est important de comprendre la structure HTML de la page et d'identifier quels sélecteurs CSS contiennent le contenu que vous souhaitez extraire.
- Dans mon cas, j'ai utilisé les sélecteurs CSS pertinents identifiés sur le site Myntra pour extraire le contenu que je ciblais.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Version Mac de WebStorm
Outils de développement JavaScript utiles

Dreamweaver Mac
Outils de développement Web visuel

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP