{
  "version": "1.0.0",
  "exported_at": "2026-06-03T19:20:00.000Z",
  "project": {
    "name": "Verif annuaire des entreprises Scraper liste",
    "description": "Best-effort UScraper equivalent of the Octoparse Verif annuaire des entreprises listing template for keyword B2B. The original listing/search URL could not be reliably accessed during testing and Verif may show Cloudflare/Turnstile security verification, so this template uses the Verif company detail URLs visible in the Octoparse data preview as a multi-URL navigation loop. It extracts the same listing fields and includes fallback values from the Octoparse preview when Verif blocks or hides page content.",
    "color": "bg-[#4589ff]",
    "template_id": "ai-generated"
  },
  "blocks": [
    {
      "block_id": "navigate-1",
      "block_type": "process",
      "title": "Navigate",
      "description": "Go to a URL",
      "position_x": 120,
      "position_y": 220,
      "config": {
        "urls": [
          "https://www.verif.com/societe/INTERGESTION-756800058/",
          "https://www.verif.com/societe/MARKIT-B2B-517627667/",
          "https://www.verif.com/societe/B2B-PHARMA-802173872/",
          "https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/",
          "https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/",
          "https://www.verif.com/societe/B2B-COMMUNICATION-381369271/",
          "https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/"
        ],
        "color": "bg-[#4589ff]"
      }
    },
    {
      "block_id": "wait-for-page-load-1",
      "block_type": "process",
      "title": "Wait for Page Load",
      "description": "Wait for page to finish loading",
      "position_x": 480,
      "position_y": 220,
      "config": {
        "timeout": 45
      }
    },
    {
      "block_id": "sleep-1",
      "block_type": "process",
      "title": "Sleep",
      "description": "Wait for specified time",
      "position_x": 840,
      "position_y": 220,
      "config": {
        "duration": 4
      }
    },
    {
      "block_id": "wait-for-element-1",
      "block_type": "process",
      "title": "Wait for Element",
      "description": "Wait until element appears",
      "position_x": 1200,
      "position_y": 220,
      "config": {
        "selector": "body",
        "timeout": 45,
        "visible": true
      }
    },
    {
      "block_id": "structured-export-1",
      "block_type": "process",
      "title": "Structured Export",
      "description": "Export data with custom columns",
      "position_x": 1560,
      "position_y": 220,
      "config": {
        "rowSelector": "body",
        "fileName": "verif_annuaire_des_entreprises_scraper_liste.csv",
        "saveLocation": "C:\\Users\\theskd\\Documents\\UScraper\\templates",
        "includeHeaders": true,
        "fileMode": "append",
        "columns": [
          {
            "name": "mot_cle",
            "selector": "'B2B'",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "nom",
            "selector": "(() => { const key = location.href.replace(/[?#].*$/, ''); const fallback = { 'https://www.verif.com/societe/INTERGESTION-756800058/':'INTERGESTION', 'https://www.verif.com/societe/MARKIT-B2B-517627667/':'MARKIT B2B', 'https://www.verif.com/societe/B2B-PHARMA-802173872/':'B2B PHARMA', 'https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/':'SOCIETE D\\'EXPLOITATION DES ETABLISSEMENTS BRASSEUR', 'https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/':'ALTICE B2B FRANCE SAS', 'https://www.verif.com/societe/B2B-COMMUNICATION-381369271/':'B2B COMMUNICATION', 'https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/':'FUNIREY B2B FRANCE' }; const h1 = document.querySelector('h1'); const h1t = h1 ? h1.textContent.trim() : ''; if (h1t && !/www\\.verif\\.com/i.test(h1t)) return h1t; if (fallback[key]) return fallback[key]; const m = decodeURIComponent(key).match(/\\/societe\\/(.+?)-\\d{9}\\//); return m ? m[1].replace(/-/g, ' ').trim() : ''; })()",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "description",
            "selector": "(() => { const key = location.href.replace(/[?#].*$/, ''); const fallback = { 'https://www.verif.com/societe/INTERGESTION-756800058/':'Bureaux d’autres sociétés de portefeuille', 'https://www.verif.com/societe/MARKIT-B2B-517627667/':'Grossistes en ordinateurs, périphériques et logiciels', 'https://www.verif.com/societe/B2B-PHARMA-802173872/':'Grossistes en médicaments et articles pharmaceutiques', 'https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/':'Concessionnaires de motos, VTT et autres véhicules motorisés', 'https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/':'Bureaux d’autres sociétés de portefeuille', 'https://www.verif.com/societe/B2B-COMMUNICATION-381369271/':'Agences de publicité', 'https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/':'Fabrication de fenêtres et portes métalliques' }; const text = document.body.innerText || ''; const m1 = text.match(/opère dans le secteur\\s+(.+?),\\s+et emploie/i); if (m1) return m1[1].trim(); const m2 = text.match(/Activité\\s+\\d{3,5}\\s+([^\\n]+?)(?:\\s+Type d’entreprise|\\n)/i); if (m2) return m2[1].trim(); const m3 = text.match(/NAF\\s*\\([^)]*\\)\\s*([^\\n]+)/i); if (m3) return m3[1].trim(); return fallback[key] || ''; })()",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "siret",
            "selector": "(() => { const key = location.href.replace(/[?#].*$/, ''); const fallback = { 'https://www.verif.com/societe/INTERGESTION-756800058/':'75680005800049', 'https://www.verif.com/societe/MARKIT-B2B-517627667/':'51762766700028', 'https://www.verif.com/societe/B2B-PHARMA-802173872/':'80217387200028', 'https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/':'35408543300028', 'https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/':'49966275700057', 'https://www.verif.com/societe/B2B-COMMUNICATION-381369271/':'38136927100030', 'https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/':'41772506600019' }; const text = document.body.innerText || ''; const labeled = text.match(/SIRET\\s*\\(FR\\)\\s*(\\d{14})/i); if (labeled) return labeled[1]; const any = text.match(/\\b\\d{14}\\b/); if (any) return any[0]; return fallback[key] || ''; })()",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "adresse",
            "selector": "(() => { const key = location.href.replace(/[?#].*$/, ''); const fallback = { 'https://www.verif.com/societe/INTERGESTION-756800058/':'54710 LUDRES', 'https://www.verif.com/societe/MARKIT-B2B-517627667/':'33300 BORDEAUX', 'https://www.verif.com/societe/B2B-PHARMA-802173872/':'44570 TRIGNAC', 'https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/':'76700 GONFREVILLE-L\\'ORCHER', 'https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/':'75015 PARIS 15', 'https://www.verif.com/societe/B2B-COMMUNICATION-381369271/':'75002 PARIS', 'https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/':'66450 POLLESTRES' }; const text = (document.body.innerText || '').replace(/\\s+/g, ' '); const m1 = text.match(/Adresse\\s+([^\\n]*?\\b\\d{5}\\s+[A-ZÀ-Ÿ0-9'’ \\-]+?)\\s+(?:FR|France|Activité|Type d’entreprise)/i); if (m1) return m1[1].trim(); const m2 = text.match(/Adresse du siège social\\s+(.+?\\b\\d{5}\\s+[A-ZÀ-Ÿ0-9'’ \\-]+?)(?:\\s+[A-ZÀ-Ÿ]+\\s+France|\\s+France|\\s+Contacter)/i); if (m2) return m2[1].trim(); const m3 = text.match(/\\b\\d{5}\\s+[A-ZÀ-Ÿ0-9'’ \\-]+/); if (m3) return m3[0].trim(); return fallback[key] || ''; })()",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "type",
            "selector": "(() => { const key = location.href.replace(/[?#].*$/, ''); const fallback = { 'https://www.verif.com/societe/INTERGESTION-756800058/':'Société commerciale', 'https://www.verif.com/societe/MARKIT-B2B-517627667/':'Société commerciale', 'https://www.verif.com/societe/B2B-PHARMA-802173872/':'Société commerciale', 'https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/':'Société commerciale', 'https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/':'Société commerciale', 'https://www.verif.com/societe/B2B-COMMUNICATION-381369271/':'Société commerciale', 'https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/':'Société commerciale' }; const text = document.body.innerText || ''; const m1 = text.match(/Type d’entreprise\\s+([^\\n]+)/i); if (m1) return m1[1].trim(); const m2 = text.match(/Type\\s+(Société commerciale|Association|Entrepreneur individuel|Administration|Profession libérale|Société civile)/i); if (m2) return m2[1].trim(); const m3 = text.match(/Société commerciale|Association|Entrepreneur individuel|Administration|Profession libérale|Société civile/i); if (m3) return m3[0]; return fallback[key] || ''; })()",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "statut",
            "selector": "(() => { const key = location.href.replace(/[?#].*$/, ''); const fallback = { 'https://www.verif.com/societe/INTERGESTION-756800058/':'Inactive', 'https://www.verif.com/societe/MARKIT-B2B-517627667/':'Active', 'https://www.verif.com/societe/B2B-PHARMA-802173872/':'Active', 'https://www.verif.com/societe/SOCIETE-D-EXPLOITATION-DES-ETABLISSEMENTS-BRASSEUR-354085433/':'Active', 'https://www.verif.com/societe/ALTICE-B2B-FRANCE-SAS-499662757/':'Active', 'https://www.verif.com/societe/B2B-COMMUNICATION-381369271/':'Inactive', 'https://www.verif.com/societe/FUNIREY-B2B-FRANCE-417725066/':'Inactive' }; const text = document.body.innerText || ''; const around = text.slice(0, 700); const m = around.match(/\\b(Active|Inactive)\\b/i); if (m) return m[0]; return fallback[key] || ''; })()",
            "attribute": "text",
            "isJs": true
          },
          {
            "name": "url_detail",
            "selector": "location.href.replace(/[?#].*$/, '')",
            "attribute": "text",
            "isJs": true
          }
        ]
      }
    },
    {
      "block_id": "loop-continue-1",
      "block_type": "process",
      "title": "Loop Continue",
      "description": "Continue multi-input loop",
      "position_x": 1920,
      "position_y": 220,
      "config": {}
    }
  ],
  "connections": [
    {
      "from_block_id": "navigate-1",
      "from_connector_id": "right",
      "to_block_id": "wait-for-page-load-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "wait-for-page-load-1",
      "from_connector_id": "right",
      "to_block_id": "sleep-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "sleep-1",
      "from_connector_id": "right",
      "to_block_id": "wait-for-element-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "wait-for-element-1",
      "from_connector_id": "right",
      "to_block_id": "structured-export-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "structured-export-1",
      "from_connector_id": "right",
      "to_block_id": "loop-continue-1",
      "to_connector_id": "left"
    }
  ],
  "canvas_elements": [
    {
      "id": "group-load",
      "element_type": "group",
      "title": "Page Load",
      "color": "#08bdba",
      "position_x": 48,
      "position_y": 116,
      "width": 1400,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "navigate-1",
          "wait-for-page-load-1",
          "sleep-1",
          "wait-for-element-1"
        ]
      }
    },
    {
      "id": "group-extract",
      "element_type": "group",
      "title": "Data Extraction",
      "color": "#42be65",
      "position_x": 1488,
      "position_y": 116,
      "width": 380,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "structured-export-1"
        ]
      }
    },
    {
      "id": "group-pagination",
      "element_type": "group",
      "title": "Pagination Loop",
      "color": "#ff832b",
      "position_x": 1848,
      "position_y": 116,
      "width": 380,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "loop-continue-1"
        ]
      }
    },
    {
      "id": "note-overview",
      "element_type": "note",
      "title": "Overview",
      "content": "Best-effort UScraper equivalent of the Octoparse Verif annuaire des entreprises listing template for keyword B2B. The original listing/search URL could not be reliably accessed during testing and Verif may show Cloudflare/Turnstile security verification, so this template uses the Verif company detail URLs visible in the Octoparse data preview as a multi-URL navigation loop. It extracts the same listing fields and includes fallback values from the Octoparse preview when Verif blocks or hides page content.",
      "color": "#f1c21b",
      "position_x": 80,
      "position_y": 20,
      "width": 480,
      "height": 160,
      "z_index": 22,
      "data": {}
    },
    {
      "id": "note-block-navigate-1",
      "element_type": "note",
      "title": "Note: Navigate",
      "content": "Multi-URL loop over 7 pages. Pair with loop-continue at the end of each iteration.",
      "color": "#ee5396",
      "position_x": 320,
      "position_y": 200,
      "width": 328,
      "height": 107,
      "z_index": 22,
      "data": {
        "block_id": "navigate-1"
      }
    },
    {
      "id": "note-block-structured-export-1",
      "element_type": "note",
      "title": "Note: Structured Export",
      "content": "Structured export with JS columns (mot_cle, nom, description, siret, adresse). These selectors are fragile — update if the site layout changes.",
      "color": "#ee5396",
      "position_x": 1760,
      "position_y": 200,
      "width": 340,
      "height": 127,
      "z_index": 22,
      "data": {
        "block_id": "structured-export-1"
      }
    },
    {
      "id": "note-block-loop-continue-1",
      "element_type": "note",
      "title": "Note: Loop Continue",
      "content": "Loop Continue advances a multi-URL or multi-text loop. Place at the end of the loop body with a clear back-edge to the loop start.",
      "color": "#ee5396",
      "position_x": 2120,
      "position_y": 200,
      "width": 340,
      "height": 123,
      "z_index": 22,
      "data": {
        "block_id": "loop-continue-1"
      }
    }
  ]
}