/v1/scrapes d’Olostep, vous pouvez extraire en temps réel du Markdown, HTML, texte, captures d’écran ou JSON structuré adapté aux LLM à partir de n’importe quelle URL.
- Produit du markdown propre, des données structurées, des captures d’écran ou du html
- Extraire du JSON via Parsers ou extraction LLM
- Gère le contenu dynamique : sites rendus en js, flux de connexion via actions, PDF
Scraper une URL
Utilisez le point de terminaison/v1/scrapes pour scraper une seule URL et choisir les formats de sortie.
Installation
Utilisation
Vous pouvez utiliser le point de terminaison pour scraper une seule URL et choisir les formats de sortie. Les paramètres obligatoires sonturl_to_scrape et formats.
D’autres paramètres courants sont wait_before_scraping (en millisecondes), remove_css_selectors (par défaut, aucun, ou un tableau de sélecteurs), et country.
Réponse
L’API renvoie un objetscrape en réponse.
Le scrape possède quelques propriétés comme id et result.
L’objet result a les champs suivants (selon le paramètre formats, certains peuvent être nuls) :
html_content: le contenu HTML de la page. Passezformats: ["html"]pour obtenir ceci.markdown_content: le contenu MD de la page. Passezformats: ["markdown"]pour obtenir ceci.text_content: le contenu texte de la page. Passezformats: ["text"]pour obtenir ceci.json_content: le contenu JSON de la page. Passezformats: ["json"]pour obtenir ceci et fournissez également un paramètreparseroullm_extract.screenshot_hosted_url: l’URL hébergée de la capture d’écran.html_hosted_url: l’URL hébergée du contenu HTMLmarkdown_hosted_url: l’URL hébergée du contenu Markdownjson_hosted_url: l’URL hébergée du contenu JSONtext_hosted_url: l’URL hébergée du contenu textelinks_on_page: les liens sur la pagepage_metadata: les métadonnées de la page
Mise en cache
Pour optimiser la vitesse, Olostep propose une couche de mise en cache partagée optionnelle pour les résultats HTML, Markdown, texte et JSON analysés.Comment ça fonctionne
Lorsqu’un scrape est demandé, Olostep vérifie si un scrape correspondant existe déjà avec les mêmes paramètres. Si une correspondance suffisamment récente est trouvée, le contenu est servi instantanément depuis le stockage d’Olostep sans lancer un nouveau scrape de navigateur.- Cache partagé : Le cache est partagé globalement. Si une autre requête a scrappé exactement la même URL avec exactement la même configuration dans votre fenêtre de fraîcheur, vous bénéficiez de l’accélération.
- Le post-traitement est toujours en direct : Les opérations comme
llm_extractet les filtreslinks_on_pagesont exécutées à la volée sur le document mis en cache. Vous ne mettez en cache que la récupération de la page principale, gardant vos extractions structurées dynamiques.
Fraîcheur et max_age
Par défaut, l’API de production effectue toujours un scrape en direct pour garantir une précision en temps réel. Vous pouvez opter pour la mise en cache en utilisant le paramètre max_age.
- Comportement par défaut de l’API (
max_age: 0) : Chaque requête API déclenche un nouveau scrape. - Comportement par défaut du Playground : Dans le playground du tableau de bord,
max_ageest par défaut de 24 heures (86400secondes). - Âge maximum : Le cache a une limite stricte de 7 jours (
604800secondes). Toutmax_agedemandé au-delà de cette limite reviendra à un maximum de 7 jours.
Exemples d’utilisation
Quand le cache est-il contourné ?
Le cache est automatiquement contourné (forçant un scrape en direct) lorsque votre requête nécessite :- Sessions interactives : Requêtes utilisant
session_idou chargeant uncontextde navigateur personnalisé. - Captures d’écran : Toute requête incluant
screenshotdans les formats ou définissant l’option de capture d’écran contourne le cache. - Types de fichiers spéciaux : Téléchargements de fichiers binaires ou rendu PDF brut.
- Débogage & Réseau : Capture des
network_callsou utilisation de tâches d’analyse asynchrones.
Extraction de liens
Passez un objetlinks_on_page dans la requête pour collecter les liens trouvés sur la page. Tous les liens sont retournés sous forme d’URL absolues.
include_links/exclude_links: motifs globaux correspondants au chemin de l’URL de chaque lien.query_to_order_links_by: réorganise les liens retournés par pertinence par rapport à ce texte.
Les motifs globaux correspondent aux segments de chemin. Un seul
* ne traverse pas /, donc "/blog/*" correspond à "/blog/post-1" mais pas à l’index "/blog" lui-même — et il ne correspond jamais à "/blog?tag=x" car les chaînes de requête ne font pas partie du chemin. Pour inclure également l’index, utilisez "/blog*" ou "{/blog,/blog/**}".Formats de Scrape
Choisissez un ou plusieurs formats de sortie viaformats :
markdown: markdown adapté aux LLMhtml: HTML nettoyétext: texte brutjson: sortie structurée (via parser ou llm_extract)raw_pdf: octets PDF bruts extraits vers une URL hébergéescreenshot: défini via des actions pour capturer une capture d’écran et retourner une URL hébergée
result en tant que champs *_content et une *_hosted_url également.
Extraire des données structurées
Vous pouvez extraire du JSON structuré de deux manières : en utilisant des Parsers ou l’extraction LLM.Utiliser un Parser (recommandé pour l’échelle)
Définissezformats: ["json"] et fournissez un id de parser.
Utiliser l’extraction LLM (schéma et/ou prompt)
Fournissezllm_extract avec un schéma JSON (schema) et/ou une instruction en langage naturel (prompt). Vous pouvez passer les deux paramètres, mais si les deux sont fournis, schema prend la priorité.
Sinon, si vous passez simplement un prompt, le LLM extraira les données en fonction du prompt et décidera de la structure des données par lui-même.
result.json_content retourne un JSON sous forme de chaîne. Analysez-le dans votre code si vous avez besoin d’un objet.
Tarification : llm_extract coûte 10 crédits par scrape. Pour réduire le coût, vous pouvez apporter vos propres clés API ou activer la tarification à l’usage. Contactez info@olostep.com pour obtenir l’accès.
Extraire les liens sur la page
Avec l’optionlinks_on_page, vous pouvez extraire tous les liens présents sur la page que vous scrapez. Elle accepte les paramètres suivants pour aider à filtrer et ordonner les liens extraits :
absolute_links(booléen, par défaut :true) : Lorsqu’il est vrai, il retourne des URL complètes (par exemple,https://example.com/page) au lieu de chemins relatifs (par exemple,/page).query_to_order_links_by(chaîne) : Ordonne les liens retournés par leur similarité avec le texte de requête fourni, en priorisant les correspondances les plus pertinentes en premier.include_links(tableau de chaînes) : Filtrez les liens extraits en utilisant des motifs globaux. Utilisez des motifs comme*.pdfpour correspondre aux extensions de fichiers,/blog/*pour des chemins spécifiques, ou des URL complètes commehttps://example.com/*. Prend en charge les jokers (*), les classes de caractères ([a-z]), et l’alternance ({pattern1,pattern2}).exclude_links(tableau de chaînes) : Excluez des liens spécifiques en utilisant des motifs globaux, suivant la même syntaxe queinclude_links.
Interagir avec la page avec des Actions
Effectuez des actions avant de scraper pour interagir avec des sites dynamiques. Actions prises en charge :waitavecmillisecondsclickavecselectorfill_inputavecselectoretvaluescrollavecdirectionetamount
wait avant/après d’autres actions pour permettre à la page de se charger.
Exemple
markdown_content).
Cas d’utilisation
Voici quelques applications pratiques de clients utilisant le point de terminaison/scrapes.
Analyse de contenu & Recherche
- Analyse concurrentielle : Extraire les détails des produits, les prix et les caractéristiques des sites concurrents
- Étude de marché : Analyser les pages de destination, les descriptions de produits et les témoignages clients
- Recherche académique : Rassembler des données spécifiques à partir de publications scientifiques ou de portails de recherche
- Documentation légale : Extraire des études de cas, réglementations ou précédents juridiques à partir de sites officiels
E-commerce & Vente au détail
- Stratégies de tarification dynamique : Obtenez des prix de produits en temps réel à partir de magasins concurrents
- Gestion de l’information produit : Extraire des spécifications détaillées et des descriptions
- Surveillance des stocks/inventaires : Vérifiez la disponibilité des produits chez d’autres détaillants
- Analyse des avis : Recueillir les retours des consommateurs et le sentiment pour des produits spécifiques
Marketing & Création de contenu
- Curation de contenu : Extraire des articles et des billets de blog pertinents pour des newsletters
- Analyse SEO : Examiner l’utilisation des mots-clés des concurrents, les méta-descriptions et la structure des pages
- Génération de leads : Extraire des informations de contact à partir d’annuaires d’entreprises ou de pages d’entreprises
- Recherche d’influenceurs : Recueillir des métriques d’engagement et des styles de contenu à partir de profils d’influenceurs
- Génération personnalisée de médias sociaux : Créez un marketing sur les réseaux sociaux alimenté par l’IA en analysant les sites Web des clients
Applications de données
- Collecte de données d’entraînement IA : Rassembler des exemples spécifiques pour les modèles d’apprentissage automatique
- Construction de bases de connaissances personnalisées : Extraire de la documentation ou des instructions à partir de sites logiciels
- Archives de données historiques : Préserver le contenu des sites Web à des moments spécifiques
- Extraction de données structurées : Transformer le contenu web en ensembles de données formatés pour l’analyse
Surveillance & Alertes
- Surveillance de la conformité réglementaire : Suivre les changements sur les sites légaux ou réglementaires
- Gestion de crise : Surveiller les sites d’actualités pour les mentions d’événements ou d’organisations spécifiques
- Suivi d’événements : Extraire des détails sur les événements à venir à partir de sites de lieux ou d’organisateurs
- Surveillance de l’état des services : Vérifiez les pages d’état des services pour des plateformes ou outils spécifiques
Publication & Médias
- Agrégation de nouvelles : Extraire les dernières nouvelles à partir de sources officielles
- Surveillance des médias : Suivre des sujets spécifiques sur les sites d’actualités
- Vérification de contenu : Extraire des informations pour vérifier des affirmations ou des déclarations
- Extraction multimédia : Rassembler des vidéos, images ou audio intégrés pour des bibliothèques de médias
Applications financières
- Recherche d’investissement : Extraire des états financiers ou des rapports annuels à partir de sites d’entreprises
- Indicateurs économiques : Recueillir des données économiques à partir de sites gouvernementaux ou d’institutions financières
- Données sur les cryptomonnaies : Extraire des informations en temps réel sur les prix et la capitalisation boursière
- Analyse des nouvelles financières : Surveiller les sites d’actualités financières pour des signaux de marché spécifiques
Applications techniques
- Extraction de documentation API : Rassembler de la documentation technique pour référence
- Tests d’intégration : Extraire des éléments de site Web pour vérifier les intégrations tierces
- Tests d’accessibilité : Analyser la structure des sites Web pour la conformité aux normes d’accessibilité
- Création d’archives Web : Capturer le contenu complet des sites Web pour la préservation historique
Scénarios d’intégration
- Systèmes CRM : Améliorer les profils clients avec des données provenant de sites d’entreprises ou de Linkedin
- Systèmes de gestion de contenu : Importer du contenu externe pertinent
- Outils de Business Intelligence : Compléter les données internes avec des informations de marché externes
- Logiciels de gestion de projet : Extraire des spécifications ou des exigences à partir de sites clients
- Tableaux de bord personnalisés : Afficher les données extraites aux côtés des métriques internes
Gestion des erreurs
Toutes les erreurs suivent une forme d’enveloppe partagée. Vérifiezerror.type et error.code pour brancher le programme :
Échec DNS (400)
Le domaine ne se résout pas. Vérifiez l’URL pour des fautes de frappe.Erreur TLS/SSL (502)
Le site cible a une configuration HTTPS cassée ou incompatible.error.detail fournit le code d’erreur SSL spécifique pour le diagnostic ; error.code est toujours tls_error.