Skip to content
Back to skills

Scraping

ASecurity

Scraping de données publiques via l'API Apify pour {{COMPANY_NAME}} — benchmark concurrent, audit social média d'un compte, collecte de données pour la veille. Utilise le token $APIFY_TOKEN configuré au wizard. Workflow Apify Store → run d'Actor → dataset → export json/csv + synthèse. À invoquer quand il faut des données externes structurées (posts d'un compte, fiches, avis) que la recherche web ne fournit pas.

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
content-marketingrustgobashgitapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add Littlpinguin/marketing-cockpit-template --skill scraping --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scraping?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scraping
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/littlpinguin-scraping/badge)](https://www.skillsdirectory.com/skills/littlpinguin-scraping)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scraping
description: Scraping de données publiques via l'API Apify pour {{COMPANY_NAME}} — benchmark concurrent, audit social média d'un compte, collecte de données pour la veille. Utilise le token $APIFY_TOKEN configuré au wizard. Workflow Apify Store → run d'Actor → dataset → export json/csv + synthèse. À invoquer quand il faut des données externes structurées (posts d'un compte, fiches, avis) que la recherche web ne fournit pas.
---

# scraping — collecte de données via Apify

Tu es l'opérateur de scraping de {{COMPANY_NAME}}. Tu utilises la plateforme **Apify** (API REST, Actors du Store — pas de code d'Actor custom) pour collecter des données publiques structurées, puis tu les transformes en livrables d'analyse.

## Prérequis

1. `$APIFY_TOKEN` doit être défini dans `.env` (format `apify_api_...`, configuré au wizard `/tools-setup`). Vérifier : `grep -q APIFY_TOKEN .env`. S'il manque, s'arrêter et guider l'utilisateur (console Apify → Settings → API tokens), **sans jamais écrire la clé dans un fichier suivi par git ni dans le chat**.
2. Toujours référencer la clé via `$APIFY_TOKEN` dans les commandes (`source .env` d'abord). Jamais de clé littérale.
3. Les runs Apify consomment des crédits payants : **toujours plafonner le volume** (`limit`, `maxItems`, `resultsLimit` selon l'Actor).

## Workflow Apify générique

1. **Chercher l'Actor** sur le Store :
   ```bash
   curl -s -H "Authorization: Bearer $APIFY_TOKEN" \
     "https://api.apify.com/v2/store?search=<mots-clés>&limit=10"
   ```
   Choisir un Actor maintenu (note, nombre d'utilisateurs) et **vérifier son `exampleRunInput`** avant de lancer. Réutiliser en priorité un Actor déjà utilisé dans ce repo (noter les Actors éprouvés dans le livrable pour la prochaine fois).
2. **Lancer un run** (synchronement si possible) :
   ```bash
   curl -s -X POST -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
     "https://api.apify.com/v2/acts/<user>~<actor>/runs?waitForFinish=300" \
     -d '{ "...input JSON avec plafond d’items..." }'
   ```
   Récupérer `data.id` (runId) et `data.defaultDatasetId` dans la réponse. Si le run dépasse 300 s, poller `GET /v2/actor-runs/<runId>` jusqu'à `SUCCEEDED`.
3. **Récupérer le dataset** :
   ```bash
   curl -s -H "Authorization: Bearer $APIFY_TOKEN" \
     "https://api.apify.com/v2/datasets/<datasetId>/items?format=json" > <cible>/data.json
   # et si utile en tabulaire :
   "https://api.apify.com/v2/datasets/<datasetId>/items?format=csv" > <cible>/data.csv
   ```
4. **Livrer** : brut `.json` (+ `.csv` si pertinent) + synthèse `.md` lisible, dans le dossier du cas d'usage (voir ci-dessous). Nommer `sujet_contexte_YYYY-MM-DD.ext`.

Docs : API v2 → https://docs.apify.com/api/v2 — Store → https://apify.com/store. **Vérifier les endpoints dans la doc avant tout nouvel appel** (règle « verify, do not trust » du CLAUDE.md racine).

## Cas d'usage 1 — Benchmark concurrent

**Livrable → `02-strategy/benchmarks/<concurrent>-YYYY-MM.md`** (+ `data/` pour le brut).

1. Cadrer avec l'utilisateur : quel concurrent (idéalement dans la liste `veille.competitors` de `.setup-completed`), quelles surfaces (site, posts sociaux, avis, fiches locales), quelle profondeur (plafond d'items).
2. Scraper chaque surface via le workflow générique (Actor adapté : scraper web, scraper de posts, scraper d'avis...).
3. Synthèse comparative structurée : positionnement affiché, offres/prix publics, messages récurrents, preuves mises en avant, angles de contenu — et pour chaque axe, **le contraste avec {{COMPANY_NAME}}** (s'appuyer sur `01-brand/messaging-framework.md`).
4. Terminer par 3-5 implications actionnables (angles différenciants, contre-arguments, trous à occuper), chacune référençant les données scrapées.

## Cas d'usage 2 — Audit social média d'un compte

**Livrable → `03-social-media/audits/<compte>-YYYY-MM.md`** (+ brut `.json` à côté).

1. Scraper le contenu du compte (le sien, un concurrent, un modèle inspirant) : Actor de récupération de posts du réseau visé (ex. posts d'un profil ou d'une page LinkedIn, Instagram, TikTok). Plafonner à 30-50 posts récents.
2. Appliquer la **grille d'analyse** :
   - **Fréquence** : posts/semaine, régularité, jours et heures de publication
   - **Formats** : répartition texte / image / carrousel / vidéo / lien — quels formats dominent
   - **Engagement** : réactions, commentaires, partages par post ; moyenne, médiane, top 5 posts et pourquoi ils performent (accroche, sujet, format)
   - **Thèmes** : catégoriser les posts en 4-6 thèmes récurrents avec leur part et leur engagement relatif
3. Conclure : ce qui marche pour ce compte, ce qui est transposable à {{COMPANY_NAME}} (calibré voix et personas de `01-brand/`), ce qu'il ne faut pas copier.
4. Si l'audit porte sur le compte de la marque elle-même : ajouter l'écart entre la cadence cible ({{CONTENT_CADENCE_LINKEDIN}}) et la cadence réelle, et l'équilibre constaté des piliers.

## Cas d'usage 3 — Collecte de données pour la veille

**Livrable → `02-strategy/veille/YYYY-WW/data/<sujet>.json` + section sourcée dans la synthèse de veille.**

1. Invoqué en soutien de la skill `veille-strategy` quand la recherche web ne suffit pas : posts récents des comptes concurrents, avis clients récents, annonces sur une place de marché, offres d'emploi d'un concurrent...
2. Runs légers (plafonds bas, données des 7-30 derniers jours selon la cadence de veille).
3. Chaque donnée injectée dans la veille garde sa traçabilité : Actor utilisé, date du run, compte/URL source — c'est ce qui permet à `veille-strategy` de citer ses signaux.

## Règles dures

- **Plafonner chaque run** (crédits payants) et annoncer le volume avant de lancer.
- **Jamais de secret en clair** — `$APIFY_TOKEN` uniquement, `.env` est dans `.gitignore`.
- **Données personnelles scrapées** (profils, contacts) : usage interne analyse/veille uniquement ; ne jamais les republier telles quelles dans un contenu, conformément à `SECURITY.md`.
- Respecter les conditions des plateformes scrapées ; en cas de doute sur la légitimité d'une collecte, demander à l'utilisateur.

## Ce que cette skill ne fait PAS

- ❌ La veille éditoriale elle-même (→ `veille-strategy`, qui peut t'appeler)
- ❌ Rédiger du contenu à partir des données (→ skills de production)
- ❌ Écrire des Actors Apify custom

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…