Workflow n8n

Automatisation Web Scraper avec n8n : extraction de données en temps réel

  • Ce workflow n8n est conçu pour automatiser le processus de scraping de sites web en utilisant Jina.ai. Dans un contexte où la collecte de données précises et à jour est cruciale pour les entreprises, ce workflow permet d'extraire efficacement des contenus web et de les sauvegarder dans Google Drive. Les cas d'usage incluent la recherche de tendances, l'analyse de la concurrence et la collecte de contenu pour le marketing digital.
  • Le workflow débute avec un déclencheur manuel, permettant à l'utilisateur de lancer le processus à tout moment. Ensuite, il récupère une liste d'URLs de sites web via une requête HTTP, puis les traite en les convertissant en format JSON. Une fois les données récupérées, le workflow les filtre selon des thèmes ou des pages spécifiques, garantissant que seules les informations pertinentes sont extraites. Les contenus des pages sont ensuite sauvegardés dans Google Drive, facilitant leur accès et leur partage.
  • Les bénéfices de cette automatisation n8n sont multiples : elle réduit le temps consacré à la collecte manuelle de données, minimise les erreurs humaines et permet une mise à jour rapide des informations. En intégrant ce workflow, les entreprises peuvent améliorer leur efficacité opérationnelle et prendre des décisions basées sur des données fiables et actualisées.
Tags clés :automatisationweb scrapingGoogle DriveJina.ain8n
Catégorie: Manual · Tags: automatisation, web scraping, Google Drive, Jina.ai, n8n0

Workflow n8n web scraping, Google Drive, Jina.ai : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n web scraping, Google Drive, Jina.ai : détail des nœuds

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • When clicking ‘Test workflow’

    Ce noeud déclenche manuellement l'exécution du workflow lorsque l'utilisateur clique sur 'Test workflow'.

  • Loop Over Items

    Ce noeud permet de traiter les éléments en les divisant en plusieurs lots.

  • Wait

    Ce noeud met le workflow en pause pendant une durée spécifiée.

  • Limit

    Ce noeud limite le nombre d'éléments traités à un maximum défini.

  • Get List of Website URLs

    Ce noeud effectue une requête HTTP pour obtenir une liste d'URLs de sites web.

  • Convert to JSON

    Ce noeud convertit des données XML en format JSON.

  • Create List of Website URLs

    Ce noeud crée une liste d'URLs de sites web en fonction des options et du champ à extraire.

  • Filter By Topics or Pages

    Ce noeud filtre les éléments selon des sujets ou des pages spécifiés.

  • Set Website URL

    Ce noeud définit une URL de site web en utilisant des options et des affectations.

  • Jina.ai Web Scraper

    Ce noeud effectue une requête HTTP pour extraire des données à partir d'un scraper Jina.ai.

  • Save Webpage Contents to Google Drive

    Ce noeud enregistre le contenu d'une page web dans Google Drive avec des paramètres spécifiés.

  • Extract Title & Markdown Content

    Ce noeud exécute un code JavaScript pour extraire le titre et le contenu en Markdown.

  • Sticky Note1

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note2

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note3

    Ce noeud crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "xEij0kj2I1DHbL3I",
  "meta": {
    "instanceId": "31e69f7f4a77bf465b805824e303232f0227212ae922d12133a0f96ffeab4fef",
    "templateCredsSetupCompleted": true
  },
  "name": "💡🌐 Essential Multipage Website Scraper with Jina.ai",
  "tags": [],
  "nodes": [
    {
      "id": "3a503859-ef0a-492d-81c6-37e4f0c4c25e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 340,
        "height": 320,
        "content": "## Jina.ai Web Scraper\n### No API Key Required\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c5217a1a-f074-409b-8340-72afdc5fc8b5",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1500,
        -300
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "72af3b00-2632-4877-a0b6-7477e2f468f7",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -1080,
        20
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "11f0fa02-51f8-41cc-b789-5c452b6899aa",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        80,
        220
      ],
      "webhookId": "081ce124-0cbf-4a21-a1e7-2c465f460448",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "cf3b5887-8ff2-46e0-ab33-384ab0987cbb",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        80,
        -300
      ],
      "parameters": {
        "maxItems": 20
      },
      "typeVersion": 1
    },
    {
      "id": "c4f04d82-aa33-46cf-a8e2-0b4e717e754a",
      "name": "Get List of Website URLs",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -780,
        -300
      ],
      "parameters": {
        "url": "={{ $json.sitemap_url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "7f507c38-1e9e-4c46-8dea-bd6daf65dc55",
      "name": "Convert to JSON",
      "type": "n8n-nodes-base.xml",
      "position": [
        -560,
        -300
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "e21b55c2-8b0d-4c7c-ba91-a2d563a4c966",
      "name": "Create List of Website URLs",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -340,
        -300
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "urlset.url"
      },
      "typeVersion": 1
    },
    {
      "id": "61555239-8a16-424e-8a60-700f6ebaa270",
      "name": "Filter By Topics or Pages",
      "type": "n8n-nodes-base.filter",
      "position": [
        -120,
        -300
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "d66c304d-879a-4dc4-908f-ab0665093672",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.loc }}",
              "rightValue": "=https://ai.pydantic.dev/"
            },
            {
              "id": "3c930950-bee4-442b-82e6-4437fd39a933",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.loc.toLowerCase() }}",
              "rightValue": "agent"
            },
            {
              "id": "aaeaf34e-ad5a-4673-b3bd-8bddf3500988",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.loc.toLowerCase() }}",
              "rightValue": "tool"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dd25fb57-64a3-4c47-be04-6eb66d16520a",
      "name": "Set Website URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -1080,
        -300
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1601dc3e-8024-4e19-b592-93a4e4f77641",
              "name": "sitemap_url",
              "type": "string",
              "value": "https://ai.pydantic.dev/sitemap.xml"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "14ac1c87-29fe-44c8-9c1e-f247a292dde5",
      "name": "Jina.ai Web Scraper",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -720,
        120
      ],
      "parameters": {
        "url": "=https://r.jina.ai/{{ $json.loc }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "be253ec2-f088-4895-8ef2-61a3720cf68b",
      "name": "Save Webpage Contents to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -120,
        120
      ],
      "parameters": {
        "name": "={{ $('Loop Over Items').item.json.loc }} - {{ $json.title }}",
        "content": "={{ $json.markdown }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultName": "/ (Root folder)"
        },
        "operation": "createFromText"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "UhdXGYLTAJbsa0xX",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "95d808c7-a3ca-4f59-a385-cc77bdff322e",
      "name": "Extract Title & Markdown Content",
      "type": "n8n-nodes-base.code",
      "position": [
        -380,
        120
      ],
      "parameters": {
        "jsCode": "// Get the text output from the previous node\nconst data = $input.first().json.data;\n\n// Regular expression to capture the title line\nconst titleRegex = /^Title:\\s*(.+)$/m;\n// Regular expression to capture everything after \"Markdown Content:\"\nconst markdownRegex = /Markdown Content:\\n([\\s\\S]+)/;\n\n// Extract the title using the first capture group\nconst titleMatch = data.match(titleRegex);\nconst title = titleMatch ? titleMatch[1].trim() : '';\n\n// Extract the markdown content using the first capture group\nconst markdownMatch = data.match(markdownRegex);\nconst markdown = markdownMatch ? markdownMatch[1].trim() : '';\n\n// Return a single object with title and markdown as unique values\nreturn { title, markdown };"
      },
      "typeVersion": 2
    },
    {
      "id": "2fb86c81-c144-4450-908c-559855deadef",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1240,
        -580
      ],
      "parameters": {
        "color": 7,
        "width": 1540,
        "height": 1080,
        "content": "# 💡🌐 Essential Multipage Website Scraper with Jina.ai\n## Scrape entire websites with this workflow\n**Use responsibly and follow local rules and regulations**"
      },
      "typeVersion": 1
    },
    {
      "id": "b470b294-95d0-4e51-a9cc-2fe17316a771",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1580,
        -400
      ],
      "parameters": {
        "color": 4,
        "width": 280,
        "height": 300,
        "content": "## 👍Try Me!"
      },
      "typeVersion": 1
    },
    {
      "id": "fafd0623-a423-4e73-9609-cee8e81f5c13",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1180,
        -400
      ],
      "parameters": {
        "width": 300,
        "height": 300,
        "content": "## 👇Add Website Sitemap URL"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2e815787-d83b-4ab7-a959-2f33006a37a5",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to JSON": {
      "main": [
        [
          {
            "node": "Create List of Website URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Jina.ai Web Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Website URL": {
      "main": [
        [
          {
            "node": "Get List of Website URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jina.ai Web Scraper": {
      "main": [
        [
          {
            "node": "Extract Title & Markdown Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get List of Website URLs": {
      "main": [
        [
          {
            "node": "Convert to JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter By Topics or Pages": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create List of Website URLs": {
      "main": [
        [
          {
            "node": "Filter By Topics or Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Title & Markdown Content": {
      "main": [
        [
          {
            "node": "Save Webpage Contents to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Set Website URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Webpage Contents to Google Drive": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n web scraping, Google Drive, Jina.ai : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing, aux analystes de données et aux entreprises cherchant à automatiser la collecte d'informations en ligne. Il est idéal pour les organisations de taille moyenne à grande, avec un niveau technique intermédiaire requis pour sa mise en place.

Workflow n8n web scraping, Google Drive, Jina.ai : problème résolu

Ce workflow résout le problème de la collecte manuelle de données sur le web, qui est souvent chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs peuvent obtenir des informations précises et à jour sans effort manuel. Cela permet également de réduire les risques liés à la perte de données et d'améliorer la réactivité face aux évolutions du marché.

Workflow n8n web scraping, Google Drive, Jina.ai : étapes du workflow

Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.

  • Étape 1 : Une requête HTTP est effectuée pour obtenir une liste d'URLs de sites web.
  • Étape 2 : Les URLs sont traitées et converties en format JSON.
  • Étape 3 : Les données sont filtrées selon des thèmes ou des pages spécifiques.
  • Étape 4 : Les contenus des pages sont extraits et sauvegardés dans Google Drive pour un accès facile.

Workflow n8n web scraping, Google Drive, Jina.ai : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP pour cibler des sites spécifiques. Il est également possible d'ajuster les conditions de filtrage pour extraire des données correspondant à des thèmes particuliers. Pour sécuriser le flux, pensez à configurer les autorisations d'accès à Google Drive et à surveiller les logs d'exécution pour détecter d'éventuelles erreurs.