Parseur de sites webDéveloppement et personnalisation

Un parseur de sites web en Python qui collecte des données publiques de pages en CSV ou Excel : prix, catalogues, annonces

Généralement prêt en 15 minutesRetouches inclusesContrôle qualité
Formules
Paiement protégéEn savoir plus
  • Les retouches prévues par la formule sont gratuites.
  • Sans réponse de votre part dans les 3 jours suivant la livraison, le travail est validé automatiquement.

L’argent est réservé au paiement et versé uniquement une fois le travail validé.

Un parseur de sites web en Python qui collecte des données publiques de pages en CSV ou Excel : prix, catalogues, annonces

Exemple de résultat

Exemple pour la formule Standard

Parseur du catalogue d’un fournisseur d’outils de jardin vers Excel

À quoi ressemble le résultat

RéférenceNomPrixEn stockPoidsPhoto
GT-1042Sécateur, 20 mm18,90Oui0,24 kg…/gt-1042.jpg
GT-1187Scie pliante, 210 mm24,50Oui0,31 kg…/gt-1187.jpg
GT-2210Cisaille à haies, lame ondulée39,00Non1,10 kg…/gt-2210.jpg
GT-3305Transplantoir, inox9,80Oui0,18 kg…/gt-3305.jpg
GT-4120Tuyau d’arrosage 25 m, 1/2"42,00Oui2,90 kg…/gt-4120.jpg

Le fichier de l’exemple contient 1 236 produits issus de 52 pages de liste.

Un extrait du code

def product_links(list_url: str) -> Iterator[str]:
    """Liens des fiches produits de chaque page de la liste, en suivant « Suivant »."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """Une page publique, à un rythme raisonnable : une pause entre les requêtes et quelques essais en cas d’erreur."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s a répondu %s, essai %d sur 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} ne s’est pas ouverte après 3 essais")

Fichiers : une archive ZIP avec scraper.py, settings.ini (la page de départ, la pause entre les requêtes, le nom du fichier), requirements.txt et un README sur l’installation et le lancement. Il ne lit que des pages publiques, une toutes les 2 secondes, et consulte d’abord le robots.txt du site. Le client le lance sur son propre ordinateur.

Client : une jardinerie en ligne qui revend les outils d’un fournisseur ; celui-ci a un catalogue public sur son site, mais aucun fichier de tarifs. Tâche : parcourir les pages de liste du catalogue, ouvrir chaque fiche produit et enregistrer dans Excel la référence, le nom, le prix, le stock, le poids et le lien de la photo principale, pour comparer les prix une fois par semaine.

Le client et tous les détails sont fictifs.

À propos de ce service

Un parseur collecte des données visibles sur des pages web publiques et les enregistre sous forme de tableau : prix et stock de produits, catalogue d’un fournisseur pour votre boutique, annonces, offres d’emploi, événements ou articles. Indiquez-nous le site et les pages, listez les champs voulus (nom, prix, lien, image, etc.) et envoyez une ou deux de ces pages enregistrées depuis votre navigateur (Fichier > Enregistrer la page sous) ou des captures d’écran. Nous écrivons le parseur en Python d’après la vraie structure de ces pages, et il enregistre les résultats en CSV, Excel ou JSON. Vous recevez une archive avec le code, un fichier de paramètres avec les adresses et la pause entre les pages, et un README qui explique comment installer Python et le lancer. Vous lancez le parseur sur votre propre ordinateur : les données arrivent donc directement chez vous ; nous ne les collectons pas pour vous et ne les conservons pas. Il ne lit que des pages publiques, à un rythme raisonnable, et ne se connecte jamais, ne contourne ni captcha ni autre protection et ne collecte aucune donnée personnelle comme les noms, e-mails ou numéros de téléphone des personnes. Quand un site change sa mise en page, le parseur peut demander une mise à jour. Le droit de collecter et d’utiliser les données d’un site selon ses conditions relève de votre responsabilité.

Ce qui est inclus

  • Ce que vous recevezUne archive ZIP avec le code Python, un fichier de paramètres et un README avec des instructions pas à pas ; le code est aussi affiché sur la page de la commande.
  • Vos champs, votre tableauDes colonnes dans l’ordre voulu
  • Construit sur les vraies pagesÉcrit d’après la structure des pages que vous envoyez
  • Rythme raisonnableUne pause entre les pages, réglée dans les paramètres
  • Tourne sur votre ordinateurWindows, macOS ou Linux, avec Python
  • Un guide simpleQuoi installer et comment le lancer, pas à pas

Comment ça marche

  1. 1
    PagesVous donnez le site, les champs et une ou deux pages enregistrées
  2. 2
    ParseurNous écrivons le code et le guide pour le lancer
  3. 3
    LancementVous le lancez et vérifiez les premières lignes du tableau
  4. 4
    RetouchesVous demandez des retouches selon votre formule et envoyez les éventuels messages d’erreur

Ce dont nous avons besoin

Le site et les pages précises : un lien vers une liste et vers une page d’élément, et le nombre approximatif de pages. Les champs voulus, dans l’ordre de votre tableau, avec un exemple pour chacun. Une ou deux de ces pages enregistrées depuis votre navigateur en HTML (Fichier > Enregistrer la page sous) ou des captures d’écran, pour que le parseur suive leur vraie structure. Le fichier de résultats voulu (CSV, Excel ou JSON) et l’endroit où vous le lancerez.

Nous vous demanderons :

  • Quel site et quelles pages ?
  • Les champs voulus
  • Combien de pages environ ?
  • Le fichier de résultats
  • Autre chose à faire

Comparer les formules

FormulesEssentielParseur pour un type de page23 €StandardPages de liste et d’élément44 €PremiumPlusieurs sites ou types de pages79 €
Délai1 jour2 jours3 jours
Retouches123
Sites11jusqu’à 3
Types de pages12 (liste et élément)jusqu’à 3
Champsjusqu’à 10jusqu’à 25jusqu’à 25 sur chacun
Parcourt les pages d’une listeNonOuiOui
Fichier de résultatsCSVExcel ou CSVExcel, CSV ou JSON
Doublons retirés, reprise là où il s’est arrêtéNonNonOui
Commander EssentielCommander StandardCommander Premium

Paiement protégé

Vous payez à la commande, mais l’argent n’est versé que pour un travail validé.

  • Prix fixeLe prix de la formule ne change pas après le paiement.
  • L’argent est réservéAu paiement, le montant est seulement réservé. Il n’est versé à Dleex qu’une fois le travail validé.
  • Vérifié avant livraisonChaque résultat passe un contrôle qualité avant de vous parvenir, et vous le voyez sur la page de la commande avant de le valider.
  • Retouches gratuitesDemandez des retouches dans le cadre de votre brief autant de fois que la formule le permet.
  • Validation au bout de 3 joursSi, dans les 3 jours suivant la livraison, vous n’avez ni validé le travail ni demandé de retouches, il est validé automatiquement. Si vous écrivez dans le chat de la commande après la livraison, la commande est mise en attente ; après notre réponse, nous pourrons relancer le délai de 3 jours et vous le signalerons dans le chat.
  • Travail refait ou remboursement intégralSi le résultat ne correspond pas à votre brief et que les retouches n’y ont rien changé, ou si le travail prend plus du double du délai prévu, écrivez dans le chat de la commande : nous referons le travail ou vous rembourserons intégralement.
Comment ça marche →

Questions et réponses

Est-il légal de parser un site ?

Collecter des données publiques est permis dans bien des cas, mais les conditions d’utilisation des sites et les lois sur les données diffèrent d’un pays à l’autre : c’est à vous de juger si vous pouvez collecter et utiliser les données. Le parseur ne se connecte jamais, ne contourne aucune protection et ne collecte aucune donnée personnelle, ce qui le maintient du bon côté.

Collecterez-vous les données pour moi ?

Non. Vous recevez le parseur et le lancez vous-même : les résultats arrivent directement chez vous et vous pouvez le relancer chaque fois que vous avez besoin de données à jour.

Et si le site change ou bloque le parseur ?

Le parseur fonctionne d’après les pages telles qu’elles sont aujourd’hui. Si le site change plus tard sa mise en page, le parseur demande une mise à jour, qui fait l’objet d’une nouvelle commande. Il lit à un rythme raisonnable, mais un site peut quand même limiter les visites ; il ne contourne pas ces limites.

Peut-il parser Amazon, Google ou les réseaux sociaux ?

Non. Leurs conditions interdisent de collecter leurs données de cette façon, beaucoup de leurs pages demandent une connexion, et elles contiennent des données personnelles. Pour ces données, utilisez l’API officielle ou l’export du service.

Faut-il savoir programmer ?

Non. Le README explique comment installer Python une fois, installer ce dont le parseur a besoin en une commande et le lancer. Pour les pages qui construisent leur contenu en JavaScript, le parseur utilise une bibliothèque de navigateur (Playwright), que le README couvre aussi.

Vous n’avez pas trouvé la réponse ?

Formules