PROJET

Scraper des sites web avec une automatisation Python configurable

Développement logiciel personnalisé, Scraping de données web, Automatisation Python configurable, Export structuré CSV et JSON, Rendu des pages JavaScript, Exécutions récurrentes du scraper, Transmission vers une base de données et une API

  • Secteur d'activité: Services de recherche
  • Allemagne Localisation: Allemagne
  • Délai de livraison: 10 semaines
  • Technologies: Python, JavaScript / TypeScript
3 mois

Ce client consacre du temps à collecter des données sur les produits, les annonces et les contacts à partir de sites web publics. La collecte manuelle ou ponctuelle complique la répétition des recherches. Le logiciel accepte des URL cibles ou des modèles d'URL, des sélecteurs et des règles de page. Il renvoie ensuite des enregistrements structurés au format CSV, JSON ou Excel. Il fournit à une organisation de recherche un outil configurable pour l'extraction récurrente de données web, y compris depuis des pages nécessitant un rendu via navigateur.

Résumé

Problème

L'organisation de recherche consacre du temps à remplacer la collecte manuelle ou ponctuelle de données web par une extraction répétable.

Solution

La solution est devenue un scraper configurable qui suit les règles de page, gère le contenu dynamique et exporte des enregistrements structurés.

Résultat

Le logiciel est conçu pour réduire la collecte manuelle et les extractions incohérentes.

Histoire du client

Le client est une organisation de recherche allemande. Elle collecte des données sur les produits, les annonces et les contacts à partir de sites web publics pour ses travaux de recherche.

La collecte manuelle et ponctuelle fait perdre du temps à l'équipe, notamment lorsque les sites cibles utilisent la pagination, des structures de pages changeantes et des tableaux dynamiques.

La demande était simple : accepter des URL cibles ou des modèles d'URL, des sélecteurs configurables ou des fichiers de configuration, puis renvoyer le contenu sélectionné des sites sous forme d'enregistrements structurés.

La solution a été conçue autour de règles de champs configurables, de l'exploration de plusieurs pages et du rendu via navigateur. Les exécutions planifiées et des journaux clairs favorisent une collecte répétable.

Le client demandait

  1. Accepter les URL, modèles d'URL, sélecteurs, XPath ou fichiers de configuration
  2. Extraire le contenu sélectionné sous forme d'enregistrements structurés
  3. Suivre la pagination entre les pages et les sites web
  4. Gérer les pages JavaScript, les tableaux dynamiques et le chargement différé

Pourquoi les logiciels prêts à l'emploi ne convenaient pas

Les logiciels d'extraction de données prêts à l'emploi couvrent de nombreux types de sources, tandis que les services de scraping gérés se concentrent sur les API, l'infrastructure de navigateur et les services proxy. Ce client avait besoin de champs, de sélecteurs et de règles de pagination propres au projet. La solution devait également fonctionner en local, inclure une documentation et respecter des exigences de sortie définies.

Présentation du projet

La solution a été conçue autour d'un écran de configuration du scraper, où l'équipe de recherche définit les URL cibles, les champs et les sélecteurs. Les règles de pagination et les formats de sortie sont également disponibles.

Pour gérer différentes structures de pages, le scraper utilise des règles d'extraction configurables pour les champs, le texte visible et les tableaux. Il explore les pages liées et suit la pagination si nécessaire.

Un rendu basé sur navigateur a été fourni pour les pages JavaScript, les tableaux dynamiques et le contenu chargé à la demande. Les pages statiques peuvent utiliser des requêtes HTTP directes et une analyse HTML à la place.

La solution a également été conçue pour fonctionner de manière répétable. Elle s'exécute en ligne de commande ou sur une machine locale, prend en charge la planification et enregistre les échecs ainsi que les nouvelles tentatives.

Les enregistrements collectés peuvent ainsi être exportés en CSV, JSON ou Excel. PostgreSQL, un point de terminaison REST JSON léger et la documentation du projet facilitent leur utilisation par l'équipe cliente.

Fonctionnalités clés fournies

  • URL cibles et modèles d'URL configurables
  • Éditeur de sélecteurs de champs et de XPath
  • Exploration de plusieurs pages et pagination
  • Rendu du contenu JavaScript et chargé à la demande
  • Export CSV, JSON et Excel
  • Limites de débit, délais, nouvelles tentatives et paramètres d'agent utilisateur
  • Historique des exécutions et journaux de scraping
  • Transmission PostgreSQL ou REST JSON

Peut être ajouté

+ Contrôles de conformité à robots.txt + Planification cloud + Archivage des données + Documentation spécifique au projet + Mappages de base de données supplémentaires

Qui d'autre peut utiliser cette solution

Ces entreprises ont une tâche similaire, et la même solution peut être adaptée à leur collecte de données sur des sites web publics.

Une agence d'études de marché

Tâche Elle collecte des données sur les produits, le marché et les contacts à partir de sites web publics.
Comment la solution aide La solution l'aide à appliquer des règles d'extraction répétables et à exporter des enregistrements de recherche structurés.

Une équipe d'analyse de données

Tâche Elle rassemble des annonces, des tableaux et du contenu sélectionné sur différents sites web publics.
Comment la solution aide La solution l'aide à suivre la pagination, à afficher les pages dynamiques et à transmettre les enregistrements vers des fichiers ou des bases de données.

Un cabinet de conseil en recherche

Tâche Elle archive ou analyse le texte visible et le contenu structuré de pages web publiques.
Comment la solution aide La solution l'aide à planifier les exécutions, à examiner les échecs et à conserver les fichiers générés avec les journaux d'exécution.

Stack technologique

Python

Langage d'automatisation

Python exécute le scraper configurable, les règles d'extraction, la gestion des données et les exports.

JavaScript / TypeScript

Langage d'automatisation du navigateur

JavaScript ou TypeScript prend en charge l'automatisation du navigateur lorsque l'extraction s'effectue via un navigateur.

Requests

Requêter des pages HTML

Requests (une bibliothèque Python pour envoyer des requêtes web) récupère les pages pour une extraction directe.

BeautifulSoup

Analyser le HTML des pages

BeautifulSoup (une bibliothèque Python pour lire le HTML) trouve les champs sélectionnés et le contenu visible dans le balisage des pages.

Scrapy

Explorer plusieurs pages

Scrapy (un framework Python d'exploration web) suit les pages liées et prend en charge l'extraction multipage.

Playwright

Rendre les pages dans le navigateur

Playwright est une API haut niveau pour automatiser les navigateurs web lors de l'extraction via navigateur.

Pandas

Gérer les données extraites

Pandas organise les enregistrements extraits avant leur export ou leur transmission.

openpyxl

Créer des fichiers Excel

openpyxl (une bibliothèque Python pour lire et écrire des fichiers Excel) prend en charge la sortie XLSX.

CSV

Exporter des enregistrements de tableaux

CSV stocke les enregistrements extraits dans un fichier tabulaire simple.

JSON

Exporter des enregistrements structurés

JSON stocke les champs extraits sous forme d'enregistrements structurés pour les fichiers ou les API.

Intégrations

PostgreSQL

Le scraper écrit les enregistrements collectés dans PostgreSQL lorsque la transmission vers une base de données est requise.

REST JSON endpoint

La solution expose les enregistrements collectés via un point de terminaison REST JSON léger lorsque cela est demandé.

Excel

La solution échange les enregistrements extraits via des fichiers XLSX.

Command line and local scheduling

Le scraper s'exécute en ligne de commande ou sur une machine locale avec cron ou le Planificateur de tâches Windows.

Le résultat

Définir les règles d'extraction pour chaque site web

L'écran de configuration regroupe les sites cibles, les champs et les sélecteurs. Les paramètres de pagination et de contenu dynamique sont également disponibles.

L'équipe de recherche dispose ainsi d'un emplacement clair pour définir ce que le scraper doit collecter avant une exécution.

Fonctionnement

  1. La configuration stocke les URL des sites, les champs requis et les sélecteurs ou XPath.
  2. Le scraper applique les règles de champs au contenu sélectionné des pages.
  3. Les modules de pagination et de contenu dynamique préparent l'exécution pour les pages liées et le contenu rendu par navigateur.
  • Les URL cibles peuvent être des adresses uniques ou des modèles d'URL.
  • Les sorties comprennent les formats CSV, JSON ou Excel.
Remarque : Les limites de débit, les délais, les paramètres d'agent utilisateur, les nouvelles tentatives et les contrôles de conformité à robots.txt favorisent une collecte responsable.
Configuration du scraper

Configuration du scraper

Fonctions de cet écran
Extraire les champs sélectionnés Gérer la pagination Rendre le contenu dynamique

Examiner les enregistrements web structurés

Le tableau des résultats présente les champs extraits, le texte visible et les tableaux sous forme d'enregistrements structurés.

L'export CSV, JSON et Excel conserve les données collectées prêtes pour les fichiers de recherche et les analyses ultérieures.

Fonctionnement

  1. Le module d'extraction crée des enregistrements à partir des champs, textes visibles, tableaux ou annonces sélectionnés.
  2. Le tableau des résultats affiche les champs extraits et le nombre d'enregistrements.
  3. Le module d'export crée des fichiers CSV, JSON ou XLSX.
  • JSON convient aux échanges structurés.
  • Excel est disponible lorsque le périmètre d'extraction l'exige.
Enregistrements extraits et export

Enregistrements extraits et export

Fonctions de cet écran
Extraire des données structurées Exporter les données en CSV ou JSON

Suivre les exécutions et analyser les échecs

L' historique des exécutions affiche les sites cibles, les horodatages et le statut. Il enregistre également les erreurs, les nouvelles tentatives et les chemins des fichiers générés.

Les journaux offrent à l'équipe un moyen pratique d'examiner l'activité du scraper lorsqu'une page change ou qu'une exécution nécessite une intervention.

Fonctionnement

  1. Le scraper enregistre les horodatages, les sites cibles et le statut de réussite ou d'échec.
  2. La visionneuse de journaux affiche les messages d'erreur et les informations sur les nouvelles tentatives.
  3. Les liens vers les fichiers générés relient chaque exécution à ses chemins CSV, JSON ou de journal.
  • L'historique des exécutions enregistre l'activité de collecte récurrente.
  • Les messages d'erreur indiquent les problèmes survenus pendant une exécution.
Historique des exécutions et journaux du scraper

Historique des exécutions et journaux du scraper

Fonctions de cet écran
Journaliser l'activité de scraping

Envoyer les enregistrements vers une base de données ou une API

L'écran de transmission prépare les enregistrements collectés pour une utilisation dans une base de données ou une API, au lieu de les laisser uniquement dans des fichiers d'export.

Le mappage des champs vers le schéma et l'aperçu de la charge JSON aident à aligner les données extraites sur la structure de destination.

Fonctionnement

  1. Le module de destination stocke les paramètres de base de données ou la configuration de destination.
  2. Le module de mappage associe les champs extraits au schéma de la table cible.
  3. Le module d'intégration enregistre le JSON correspondant au schéma, les données de base et les journaux d'exécution.
  • La solution prend en charge la transmission vers PostgreSQL si nécessaire.
  • Un point de terminaison REST JSON léger est disponible pour les intégrations demandées.
Transmission vers une base de données ou une API

Transmission vers une base de données ou une API

Ce que fournit la solution

Grâce à cette solution, l'organisation de recherche peut :

  • Définir des règles d'extraction pour chaque site web cible
  • Collecter le contenu sélectionné sur des pages paginées
  • Gérer le contenu rendu par navigateur et chargé à la demande
  • Exporter les enregistrements structurés en CSV, JSON ou Excel
  • Examiner les échecs, les nouvelles tentatives et les fichiers générés
  • Envoyer les enregistrements collectés vers une base de données ou une API

Les systèmes prêts à l'emploi pourraient-ils faire le travail ?

Avant la conception, la tâche a été comparée aux produits prêts à l'emploi à partir de leurs propres descriptions.

Besoins du client Logiciels d'extraction de données Data Extraction API de scraping web Oxylabs, Zyte, Scrapfly Outils de scraping sans code Octoparse Solution personnalisée
Accepter les URL et les règles d'extraction
Extraire le contenu sélectionné des sites web
Suivre la pagination entre les pages
Gérer le contenu dynamique du navigateur partiellement
S'adapter aux propres règles du client : étapes, rôles, rapports — — —
Toutes les étapes au même endroit —
Aucune étape manuelle entre les programmes partiellement partiellement

D'après les descriptions publiques des produits et de leur catégorie.

Les principaux éléments de la tâche existent dans les logiciels d'extraction de données, les API de scraping web et les outils de scraping sans code. Un produit prêt à l'emploi suffit lorsqu'une seule partie de la tâche est nécessaire.

Ce client avait besoin de son propre logiciel, car les règles d'extraction, le fonctionnement local, la documentation, les formats de sortie, les journaux et les exigences de destination devaient s'adapter à son travail de recherche au même endroit. Les solutions prêtes à l'emploi diffèrent également dans leur gestion des étapes manuelles entre les programmes.

En fin de compte

En fin de compte, la solution a été conçue pour supprimer la collecte manuelle du parcours entre les sites web publics et les données de recherche structurées.

FAQ

Vous envisagez de créer un système similaire ? Consultez les réponses ci-dessous pour voir comment le scraping configurable, les exports, le rendu via navigateur et la transmission peuvent s'intégrer à un processus de recherche.