Extraire des données structurées de sites web nécessite généralement d'écrire des scrappers personnalisés pour chaque mise en page HTML. Le point de terminaison extract de Scavio prend une URL et renvoie un contenu structuré sans aucun code d'analyse. Ce tutoriel montre comment extraire des données de pages produits, d'articles et de sites d'entreprise en un seul appel API.
Prérequis
- Python 3.8+ ou Node.js 18+
- Bibliothèque requests (Python) ou fetch intégré (JS)
- Une clé API Scavio depuis scavio.dev
Parcours
Étape 1: Extraire le contenu d'une URL
Envoyez une URL au point de terminaison extract et recevez un contenu structuré.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def extract(url: str) -> dict:
resp = requests.post('https://api.scavio.dev/api/v1/extract',
headers=H, json={'url': url}, timeout=30)
return resp.json()
data = extract('https://example.com/product-page')
print(data)Étape 2: Extraire plusieurs URLs par lots
Traitez une liste d'URLs et agrégez les données extraites.
import time
def extract_batch(urls: list, delay: float = 0.5) -> list:
results = []
for url in urls:
try:
data = extract(url)
results.append({'url': url, 'status': 'ok', 'data': data})
except Exception as e:
results.append({'url': url, 'status': 'error', 'error': str(e)})
time.sleep(delay)
return results
urls = ['https://example.com/page1', 'https://example.com/page2']
extracted = extract_batch(urls)Étape 3: Combiner la recherche et l'extraction pour l'enrichissement
Recherchez des entreprises, puis extrayez des données structurées de leurs sites web.
def search_and_extract(query: str) -> list:
# Search for relevant pages
search_resp = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': query}, timeout=10)
results = search_resp.json().get('organic', [])[:3]
# Extract structured data from each result
enriched = []
for r in results:
try:
extracted = extract(r['link'])
enriched.append({'title': r['title'], 'url': r['link'], 'extracted': extracted})
except: pass
return enriched
data = search_and_extract('best CRM software pricing')Étape 4: Sauvegarder les données extraites
Exportez les données extraites pour un traitement en aval.
import json
def save_extracted(data: list, filepath: str):
with open(filepath, 'w') as f:
json.dump(data, f, indent=2)
print(f'Saved {len(data)} extracted records to {filepath}')
save_extracted(extracted, 'extracted_data.json')Exemple Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def extract(url):
return requests.post('https://api.scavio.dev/api/v1/extract',
headers=H, json={'url': url}, timeout=30).json()
# Extract structured data from any URL:
data = extract('https://example.com/pricing')Exemple JavaScript
async function extract(url) {
const resp = await fetch('https://api.scavio.dev/api/v1/extract', {
method: 'POST', headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({url})
});
return resp.json();
}Sortie attendue
Structured data extracted from any URL via a single API call, with no custom parsing code needed.