Règles d'extraction
Oubliez BeautifulSoup, Cheerio et les regex. Indiquez à Shifter quels sélecteurs CSS correspondent à quels champs JSON, et récupérez du JSON propre en retour.
Syntaxe de base
Section intitulée « Syntaxe de base »Transmettez extract_rules sous forme d’objet JSON encodé en URL, où chaque clé est un champ de sortie et chaque valeur décrit comment l’extraire.
Exemple minimal :
{ "title": { "selector": "h1", "output": "text" }}Encodé en URL et envoyé :
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://example.com&extract_rules=%7B%22title%22%3A%7B%22selector%22%3A%22h1%22%2C%22output%22%3A%22text%22%7D%7D"
# {"title": "Example Domain"}Types de sortie
Section intitulée « Types de sortie »output | Renvoie | Exemple |
|---|---|---|
text | Contenu texte de l’élément | "Example Domain" |
html | HTML interne | "<strong>Example</strong> Domain" |
@<attr> | Valeur de l’attribut | "@href" → "https://example.com/" |
Champs multiples
Section intitulée « Champs multiples »Ajoutez des clés à l’objet de règles :
{ "title": { "selector": "h1", "output": "text" }, "description": { "selector": "meta[name=description]", "output": "@content" }, "canonical": { "selector": "link[rel=canonical]", "output": "@href" }}Réponse :
{ "title": "Example Domain", "description": "The example domain...", "canonical": "https://example.com/"}Tableaux
Section intitulée « Tableaux »Pour les listes (résultats de recherche, fiches produits, lignes de tableau), enveloppez la règle dans un parent qui précise type: "list" et item :
{ "products": { "selector": "div.product", "type": "list", "item": { "name": { "selector": "h2", "output": "text" }, "price": { "selector": ".price", "output": "text" }, "link": { "selector": "a.title", "output": "@href" } } }}Réponse :
{ "products": [ { "name": "Item A", "price": "$19.99", "link": "/item-a" }, { "name": "Item B", "price": "$24.50", "link": "/item-b" } ]}Analyseur JSON automatique
Section intitulée « Analyseur JSON automatique »Pour les points de terminaison qui renvoient déjà du JSON (la plupart des API REST), ajoutez auto_parser=1 pour analyser le corps et le renvoyer tel quel :
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https://api.example.com/products&auto_parser=1"- Testez d’abord les sélecteurs dans la console du navigateur :
document.querySelector(...). - Encodez correctement le JSON en URL. La plupart des clients HTTP le font automatiquement lorsque vous transmettez les règles comme objet de paramètre.
- Si un champ est absent de la page, il renvoie
nullplutôt que de faire échouer la requête.
- Sessions et proxies, scraper à travers des flux paginés.
- Avancé, en-têtes, cookies, corps de requêtes POST.