Skip to content

Jobierre/rexel-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rexel Scraper

Outil CLI en Go pour rechercher des produits sur rexel.fr par référence ou désignation et récupérer leurs informations (URL, photo, marque, etc.).

Installation

Prérequis

  • Go 1.21+
  • Chrome/Chromium (optionnel, uniquement pour le fallback navigateur headless)

Build

go build -o rexel-scraper .

Fonctionnement

Le scraper utilise une stratégie double :

  1. API directe (primaire) — Requêtes HTTP vers l'API REST Rexel. Rapide (~1s par requête), pas besoin de navigateur.
  2. Navigateur headless (fallback) — Via chromedp, si l'API ne retourne aucun résultat. Nécessite Chrome/Chromium installé.

Commandes

search — Recherche unitaire

Recherche un produit par référence fabricant, référence Rexel ou désignation.

rexel-scraper search [options] <requête>

Options

Flag Type Défaut Description
--limit int 5 Nombre maximum de résultats retournés
--output string (vide) Fichier de sortie. Format déterminé par l'extension : .json pour JSON, .csv pour CSV. Si omis, affichage console uniquement
--download-images bool false Télécharge les photos produit en local
--images-dir string ./images Dossier de destination pour les images téléchargées
--designation bool false Indique que la requête est une désignation (informatif)

Exemples

# Recherche par référence fabricant
./rexel-scraper search "069001"

# Recherche par désignation
./rexel-scraper search --designation "plaque celiane"

# Limiter à 3 résultats
./rexel-scraper search --limit 3 "069001"

# Télécharger les images
./rexel-scraper search --download-images "069001"

# Télécharger les images dans un dossier custom
./rexel-scraper search --download-images --images-dir ./photos "069001"

# Exporter en JSON
./rexel-scraper search --output resultats.json "069001"

# Exporter en CSV
./rexel-scraper search --output resultats.csv "069001"

# Combiner : images + export JSON + limite
./rexel-scraper search --download-images --limit 3 --output resultats.json "069001"

batch — Recherche en lot

Traite une liste de références depuis un fichier CSV et exporte tous les résultats.

rexel-scraper batch --file <fichier.csv> [options]

Options

Flag Type Défaut Description
--file string (requis) Fichier CSV d'entrée contenant les références
--output string resultats.json Fichier de sortie (.json ou .csv selon extension)
--limit int 5 Nombre maximum de résultats par requête
--download-images bool false Télécharge les photos produit en local
--images-dir string ./images Dossier de destination pour les images

Format du CSV d'entrée

Une référence par ligne, première colonne utilisée. Le header est optionnel et auto-détecté (reference, ref, designation, query).

Séparateurs supportés : , ou ;.

reference
069001
LEG069335
078545

Ou sans header :

069001
LEG069335
078545

Les lignes commençant par # sont ignorées (commentaires).

Exemples

# Batch simple avec export JSON
./rexel-scraper batch --file references.csv

# Batch avec images et export custom
./rexel-scraper batch --file references.csv --download-images --output resultats.json

# Batch avec export CSV
./rexel-scraper batch --file references.csv --output resultats.csv

# Limiter les résultats par référence
./rexel-scraper batch --file references.csv --limit 2 --output resultats.json

Format de sortie

JSON

[
  {
    "query": "069001",
    "results": [
      {
        "designation": "Plaque Céliane 1 poste blanc antimicrobien",
        "marque": "Legrand",
        "ref_rexel": "LEG069001",
        "ref_fabricant": "069001",
        "url": "https://www.rexel.fr/frx/.../LEG069001/p/62740601",
        "image_url": "https://apipep.rexel.fr/media/api/fr/content/62740601/LARGE",
        "image_locale": "./images/LEG069001.jpg"
      }
    ]
  }
]

CSV

Séparateur ;, encodage UTF-8 avec BOM (compatible Excel).

Colonnes : query, designation, marque, ref_rexel, ref_fabricant, url, image_url, image_locale.

Console

=== Résultats pour '069001' (5 trouvé(s)) ===

--- Résultat 1 ---
  Désignation  : Plaque Céliane 1 poste blanc antimicrobien
  Marque       : Legrand
  Réf Rexel    : LEG069001
  Réf Fabricant: 069001
  URL          : https://www.rexel.fr/frx/.../LEG069001/p/62740601
  Image URL    : https://apipep.rexel.fr/media/api/fr/content/62740601/LARGE

Structure du projet

rexel-scraper/
├── main.go                  # Point d'entrée CLI (search + batch)
├── go.mod
├── go.sum
├── internal/
│   ├── scraper/
│   │   ├── api.go           # Client API directe (eu.dif.rexel.com)
│   │   ├── browser.go       # Fallback chromedp (navigateur headless)
│   │   └── scraper.go       # Orchestrateur + téléchargement images
│   ├── models/
│   │   └── product.go       # Structs Product, SearchResult
│   └── output/
│       ├── json.go          # Export JSON
│       └── csv.go           # Export CSV
└── images/                  # Images téléchargées (créé automatiquement)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages