

# Exporter les commentaires Instagram publics vers Excel pour une thèse

Exportez les commentaires publics de premier niveau selon des règles que vous notez, puis ouvrez-les dans Excel. Conservez chaque identifiant source en texte. Notez ce que ces commentaires peuvent montrer avant de les coder.

Un commentaire de premier niveau est un commentaire sur la publication elle-même. Ce n'est pas une réponse sous un autre commentaire. Dans cet article, un échantillon désigne les commentaires publics que vous avez enregistrés selon vos règles écrites. Ce n'est pas l'ensemble des commentaires sur Instagram.

Exporter signifie que vous téléchargez les lignes enregistrées sous forme de fichier. Un Actor est un programme hébergé qui collecte des lignes. Une Task est un préréglage d'entrée enregistré pour cet Actor. Une exécution est un passage de collecte avec une entrée. L'Actor enregistre les lignes sources. Vous faites les dénombrements et le codage.

## Ce que contient chaque ligne enregistrée

Ces règles de champs ont été contrôlées le 2026-10-13 pour la version publique 0.1.21 de l'[Actor Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper). Un champ est une valeur nommée sur une ligne. Cette version enregistre un commentaire public de premier niveau sur chaque ligne.

Chaque ligne a `postUrl`, `postId`, `postShortCode`, `commentId`, `text`, `createdAt`, `likesCount`, `repliesCount`, `ownerId`, `ownerUsername`, `ownerVerified` et `collectedAt`.

`postUrl` est le lien de publication que vous avez saisi. `postId` est l'identité source de cette publication. `postShortCode` est le code court à l'intérieur de ce lien. Le code court est la partie après `/p/`, `/reel/` ou `/tv/`. `commentId` est l'identité source d'un commentaire. `text` contient les mots du commentaire. `createdAt` est l'heure du commentaire donnée par la source. `likesCount` est le nombre de j'aime que la source affichait. `repliesCount` est le nombre de réponses que la source affichait. Ce n'est pas le texte des réponses. `ownerId` est l'identité source du compte qui a publié le commentaire. `ownerUsername` est le nom public de ce compte. `ownerVerified` indique si la source montrait une marque de vérification sur ce compte. `collectedAt` est l'heure à laquelle l'Actor a enregistré la ligne.

Null signifie que la valeur n'était pas disponible. Un texte vide ne contient aucun caractère. Un texte vide n'est pas la même chose que null. Zéro signifie que le nombre était zéro. False signifie que la marque de vérification valait non. Conservez null, zéro et false comme des valeurs différentes. Ne transformez pas null en zéro ni en false.

Cette version ne place pas de champ de statut sur chaque ligne. Elle n'enregistre pas `parentId`. Elle n'enregistre pas le texte des réponses. Elle n'enregistre pas la légende de la publication. Elle n'enregistre pas les nombres d'abonnés. Elle n'enregistre pas de score de bot. Un score de bot chercherait à deviner si un compte est automatique. Elle n'enregistre pas d'étiquette de sentiment. Le sentiment serait une étiquette telle qu'éloge ou plainte. Elle ne marque pas qui compte comme membre à part entière d'un groupe. Un identifiant de propriétaire peut être null.

Il n'y a pas de ligne de réponse à coder. Un `repliesCount` null n'est pas une réponse au texte vide. Ce n'est pas un sentiment.

## 1. Écrivez le cadre avant de collecter

Le cadre est la liste des publications que vous avez choisies et les règles pour les commentaires que vous conservez. Écrivez le cadre avant d'exécuter l'Actor.

Écrivez ces éléments :

- Les liens publics connus des publications.
- La règle qui a placé ces publications sur la liste.
- La fenêtre de dates, ou une note indiquant que vous ne filtrerez pas par date.
- L'heure de collecte que vous copierez depuis `collectedAt`.
- La règle de langue.
- Ce que vous comptez : commentaires, comptes ou publications.

Une fenêtre de dates est le premier jour et le dernier jour que vous choisissez de conserver. Ce que vous comptez est votre unité. [Un commentaire, un compte et une publication sont des unités différentes](/fr/articles/verifier-si-un-fil-reddit-controle-le-resultat/). Écrivez l'heure de collecte comme `collectedAt`, et non le jour où vous commencez le codage.

Écrivez la liste des publications avant de lire les commentaires. Vous n'ajouterez alors pas une publication parce que ses commentaires correspondent à votre idée. Écrivez la fenêtre de dates avant l'exécution, ou écrivez que vous n'en utiliserez pas. Écrivez l'unité dans la même note. Les dénombrements ultérieurs se confondent facilement. Le fichier inventé ci-dessous montre pourquoi. L'Actor n'ajoute pas de champ de langue. Écrivez une règle de langue que vous pouvez suivre. Par exemple, conservez chaque texte enregistré et marquez la langue dans une nouvelle colonne. Si vous écartez une ligne, écrivez la raison.

Utilisez un lien public que vous connaissez déjà. Le lien doit contenir `/p/`, `/reel/` ou `/tv/`. Un lien de profil est une page de compte. Une Story est un élément de story de courte durée. Un lien de hashtag est une page de tag. Search et Explore sont des pages de navigation. Ces routes ne sont pas prises en charge. Utilisez uniquement des publications publiques. Ne collectez pas les comptes privés ni les commentaires masqués.

L'échantillon peut décrire le texte des commentaires publics que vous avez enregistrés. Il ne peut pas tenir lieu de l'ensemble des utilisateurs d'Instagram. Une affirmation sur l'ensemble des utilisateurs exige un plan distinct qui sélectionne des personnes. Cet article n'écrit pas ce plan.

Si vous utilisez un filtre de dates, les dates limites sont inclusives. Inclusif signifie qu'un commentaire du premier jour ou du dernier jour peut rester. Un commentaire sans `createdAt` est ignoré tant qu'un filtre de dates est actif. Un filtre de dates examine au plus 250 commentaires publics par publication, sauf si vous retirez la limite de résultats. Le tri plus ancien d'abord utilise cette même limite d'examen. Retirer la limite de résultats ne collecte toujours pas le fil public complet. Notez cette limite dans vos notes si vous utilisez des dates ou le tri plus ancien d'abord.

## 2. Contrôlez une publication avec un plafond de 3

Un pilote est une toute première exécution très petite. Vous l'utilisez pour contrôler la forme du fichier. Commencez par une publication publique connue et un plafond de 3. Un plafond est le nombre le plus élevé de commentaires que vous demandez d'enregistrer depuis une publication. Le plafond est un maximum, pas un nombre promis.

La [Task d'export vers CSV](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv) enregistrée a été contrôlée le 2026-10-13. Son entrée enregistrée est :

```json
{
  "postUrls": ["https://www.instagram.com/reel/DZu6dkVyImf/"],
  "maxCommentsPerPost": 250,
  "commentSortMode": "default",
  "collectAllAvailable": false
}
```

2. Contrôlez une publication avec un plafond de 3

Ce Reel est une entrée de départ. Une entrée de départ n'est pas votre étude. Une exécution ne fait pas votre codage. Remplacez le Reel par votre propre lien de publication publique.

Utilisez cette forme pour le pilote :

```json
{
  "postUrls": ["https://www.instagram.com/p/YOURPUBLICPOST/"],
  "maxCommentsPerPost": 3,
  "commentSortMode": "default",
  "collectAllAvailable": false
}
```

2. Contrôlez une publication avec un plafond de 3

`YOURPUBLICPOST` est un espace réservé. Un espace réservé est un substitut que vous devez remplacer. N'exécutez pas ces lettres comme s'il s'agissait d'une vraie publication.

`commentSortMode` réglé sur `default` conserve l'ordre source pour cette demande. L'ordre par défaut ne garantit ni les commentaires les plus récents ni les plus anciens. Ce n'est pas un tirage aléatoire de tous les utilisateurs. Si vous choisissez plus tard le plus récent ou le plus ancien, ce choix trie les commentaires que l'exécution a collectés. Il ne franchit pas à lui seul la limite d'examen décrite à l'étape 1.

`collectAllAvailable` réglé sur false conserve votre plafond numérique. Si vous le réglez sur true, le plafond numérique est retiré. L'exécution peut encore s'arrêter lorsque le fil public se termine, lorsque le temps est écoulé ou lorsqu'une source échoue. Cet arrêt n'est toujours pas l'ensemble des commentaires publics. Ce n'est pas l'ensemble des utilisateurs d'Instagram. Gardez `collectAllAvailable` sur false pour le pilote.

Une seule publication limite le premier contrôle à un petit périmètre. Si deux publications échouent en même temps, la cause est plus difficile à voir. Un plafond de 3 vous permet de lire chaque ligne enregistrée à l'œil. La valeur 250 de la Task n'est qu'un maximum enregistré. Ce n'est pas une promesse de 250 commentaires. Une question publique plus ancienne peut parler de 100 commentaires comme limite d'outil. Cet ancien nombre n'est pas le plafond actuel de l'Actor. Votre plafond écrit est le maximum que vous fixez. Un plafond plus élevé n'est toujours pas l'ensemble des commentaires.

Après l'exécution, comparez `postShortCode` avec votre URL. Puis lisez OUTPUT. OUTPUT est le rapport d'exécution enregistré avec les lignes. Lisez `requestedTargets`, `savedRows` et `cappedTargets` en haut. Pour chaque cible, lisez `resultState`, `sampleHealth` et `stopReason`.

Une exécution contrôlée a enregistré 3 lignes pour le code court demandé. Ces lignes avaient des identifiants de commentaire, du texte, des identifiants d'auteur et des dates. OUTPUT indiquait capped, la raison d'arrêt `max_comments_reached` et `savedRows` 3. `repliesCount` était null. Cette exécution montre la forme des champs sur cette source. Elle ne montre pas tous les commentaires de la publication. Elle ne prouve pas quel commentaire est le plus ancien. Elle ne liste pas le texte des réponses ni d'autres publications. Les identifiants d'auteur étaient présents dans cette exécution. Une publication ultérieure peut encore renvoyer un identifiant de propriétaire null.

Le plafond a arrêté cette exécution. Un résultat plafonné ne signifie pas que la publication n'a que 3 commentaires. Choisissez le plafond de votre étude seulement après que ce contrôle de forme a réussi. Gardez `collectAllAvailable` sur false jusqu'à ce que vous compreniez les autres arrêts.

Si le pilote ne renvoie aucune ligne, n'écrivez pas que la publication n'a pas de commentaires. La visibilité de la source peut échouer. Lisez `resultState`, `sampleHealth` et `stopReason` avant de décider. Des lignes vides ne sont pas la même chose qu'un sentiment codé.

## 3. Conservez le JSON d'origine

JSON est un format texte qui peut conserver des valeurs imbriquées et le mot null. JSONL signifie un objet JSON sur chaque ligne. Un dataset est l'ensemble enregistré de lignes d'une exécution. Vous pouvez l'exporter comme décrit dans le [guide des datasets Apify](https://docs.apify.com/platform/storage/dataset).

Enregistrez d'abord le JSON ou le JSONL d'origine et le rapport OUTPUT. Faites ensuite le fichier CSV ou Excel comme copie de travail. CSV signifie un tableau texte qui sépare les colonnes par des virgules. Enregistrez aussi l'entrée que vous avez utilisée. Enregistrez les liens des publications, le plafond, le tri, `collectAllAvailable` et les dates éventuelles.

La ligne de commentaire n'a pas de champ de statut pour l'ensemble du dataset. Excel ne contiendra pas OUTPUT dans les cellules de commentaire. Si vous ne conservez que le fichier de travail, vous pouvez perdre les règles qui l'ont produit.

Conservez le JSON, car le CSV peut masquer la différence entre null et vide. Ces deux valeurs fictives ne sont pas un dénombrement d'étude :

```json
{"text": null, "likesCount": null, "ownerVerified": null}
```

3. Conservez le JSON d'origine

```json
{"text": "", "likesCount": 0, "ownerVerified": false}
```

3. Conservez le JSON d'origine

Une cellule CSV peut paraître blanche pour null et pour un texte vide. Seul le JSON d'origine vous dit lequel vous aviez. Zéro j'aime est réel. False est une vraie valeur de vérification. Null n'est pas zéro, et null n'est pas false.

## 4. Importez le CSV avec les identifiants stockés en texte

Téléchargez la copie de travail en CSV ou Excel depuis le dataset. Pour le CSV, ouvrez Excel et utilisez Données, puis À partir d'un texte/CSV. Vérifiez le type de chaque colonne avant de charger le fichier. Microsoft explique ce chemin d'import dans [Importer ou exporter des fichiers texte ou CSV](https://support.microsoft.com/en-us/office/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba).

Réglez `postId`, `commentId` et `ownerId` sur Texte. Les vrais identifiants source ressemblent souvent à de longs nombres. Une colonne nombre peut supprimer des chiffres d'un identifiant long. Conservez `text` en texte. Conservez `createdAt` et `collectedAt` en date et heure seulement s'ils correspondent encore au JSON. UTC est l'horloge mondiale partagée. Elle n'utilise pas votre fuseau horaire local. Si Excel décale l'horloge, conservez plutôt l'heure en texte. Ne faites pas confiance au type qu'Excel devine.

Après l'import, comparez un `commentId` et un `createdAt` avec le JSON non modifié. Comparez aussi le nombre de lignes. La section suivante vous donne un test de texte inventé pour ce contrôle.

## 5. Comptez les lignes avant de coder

Contrôlez le fichier de travail par rapport au JSON d'origine. Comptez les lignes. Comptez les identifiants de commentaire différents qui ne sont pas vides. Différent signifie que vous comptez le même identifiant une seule fois. Trouvez les lignes copiées. Trouvez les lignes sans identifiant de commentaire. Utilisez le JSON pour distinguer null de vide.

### Test d'import fictif

Le fichier suivant est fictif. Fictif signifie que nous l'avons inventé pour l'enseignement. Ce n'est pas un résultat de l'Actor. Il ne fait pas partie du dénombrement de huit lignes ci-dessous. Ce n'est pas un résultat d'une vraie exécution Excel.

L'identifiant de test est `1234567890123456789`. Cet identifiant a 19 chiffres. Stockez-le en texte. L'identifiant attendu est exactement ces 19 chiffres. Cet article n'invente pas un mauvais nombre issu d'Excel. Il vous indique les chiffres que vous devez encore voir.

Le texte de test contient une virgule, un saut de ligne, des guillemets et le mot café. La lettre é n'appartient pas au jeu anglais de base de A à Z. Le fichier doit conserver é.

Ce JSON est la source fictive :

```json
{
  "commentId": "1234567890123456789",
  "text": "Nice, work\nShe said \"hello\" at the café"
}
```

5. Comptez les lignes avant de coder

Dans le JSON, `\n` signifie un saut de ligne. Ce CSV est la même ligne fictive. Le texte entre guillemets contient un vrai saut de ligne. Les guillemets intérieurs sont doublés. C'est l'écriture CSV normale.

```csv
commentId,text
"1234567890123456789","Nice, work
She said ""hello"" at the café"
```

5. Comptez les lignes avant de coder

Après un import correct, l'identifiant est encore :

```text
1234567890123456789
```

5. Comptez les lignes avant de coder

Le texte est encore :

```text
Nice, work
She said "hello" at the café
```

5. Comptez les lignes avant de coder

Ce sont les valeurs conservées attendues. Ce n'est pas un rapport de votre ordinateur. Si la colonne d'identifiant est un nombre, ou si café perd é, arrêtez-vous et corrigez l'import. Ne commencez pas le codage sur un fichier endommagé.

### Fichier d'étude fictif de huit lignes

Les huit lignes suivantes sont aussi fictives. Elles ne sont pas un résultat de l'Actor. Elles ne sont pas l'exécution contrôlée de trois lignes. Elles forment un fichier d'enseignement issu d'une publication inventée. Ne copiez pas ces dénombrements dans une vraie thèse.

Chaque ligne partage ces valeurs de publication :

- `postUrl`: `https://www.instagram.com/p/EXAMPLE0001/`
- `postId`: `1000000000000000001`
- `postShortCode`: `EXAMPLE0001`
- `collectedAt`: `2026-10-13T12:00:00Z`

`postId` a 19 chiffres. Dans un vrai import, il doit être en Texte. Huit lignes de commentaire appartiennent encore à une seule publication. Ne comptez pas huit publications.

Dans le tableau, null signifie non disponible. Vide signifie que le texte ne contient aucun caractère. Les courtes étiquettes de propriétaire A, B, C et D remplacent des identifiants source. Les vrais identifiants de propriétaire peuvent être longs. Stockez-les aussi en texte.

| ligne | commentId | text | ownerId | ownerUsername | likesCount | repliesCount | ownerVerified | createdAt |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| R1 | C1 | Super publication | A | name_a | 2 | null | false | 2026-10-01T10:00:00Z |
| R2 | C1 | Super publication | A | name_a | 2 | null | false | 2026-10-01T10:00:00Z |
| R3 | C2 | Super publication | A | name_a | 1 | null | false | 2026-10-02T10:00:00Z |
| R4 | C3 | Belle photo | B | name_b | 0 | 0 | false | 2026-10-03T10:00:00Z |
| R5 | C4 | J'adore ça | C | name_c | 4 | null | false | 2026-10-04T10:00:00Z |
| R6 | C5 | Génial | D | name_d | 3 | null | false | 2026-10-05T10:00:00Z |
| R7 | C6 | vide | null | null | null | null | null | 2026-10-06T10:00:00Z |
| R8 | null | Sympa | null | null | null | null | null | 2026-10-07T10:00:00Z |

R1 et R2 ont les mêmes valeurs sources. R2 est une ligne d'export copiée. Une ligne copiée répète le même identifiant de commentaire et les mêmes valeurs sources. R3 utilise les mêmes mots, Super publication, mais son identifiant de commentaire est C2. C2 est un commentaire différent. Son heure et son nombre de j'aime diffèrent aussi. Ces différences vous aident à le voir. L'identifiant de commentaire suffirait même si les autres champs correspondaient.

Sur R4, `likesCount` 0 signifie zéro j'aime. `repliesCount` 0 signifie que la source affichait zéro réponse. Vous n'avez toujours pas le texte des réponses. `ownerVerified` false signifie que la source montrait le compte comme non vérifié. Sur R7, null ne signifie ni zéro ni false. C6 a un texte vide. Cette histoire n'utilise pas un texte null pour C6. Une copie de travail CSV peut faire paraître blancs ce texte vide, le propriétaire null, les j'aime null, les réponses null et la marque de vérification null. Utilisez le JSON d'origine avant de coder C6.

Comptez le fichier dans cet ordre :

Le dénombrement des lignes brutes inclut toutes les lignes, y compris la ligne copiée. Lignes brutes = 8.

R2 est la copie en trop. Lignes copiées en trop = 1.

R8 n'a pas d'identifiant de commentaire. Lignes sans identifiant de commentaire = 1.

Commentaires connus distincts = 8 - 1 - 1. Cela fait 6. Les six identifiants sont C1, C2, C3, C4, C5 et C6.

C6 a un texte vide. Commentaires connus au texte vide = 1.

La base de texte = 6 - 1. Cela fait 5. La base de texte désigne les commentaires connus qui ont un texte que vous pouvez coder. Ces commentaires sont C1, C2, C3, C4 et C5.

Vous pouvez aussi partir des lignes qui contiennent des mots. R1, R2, R3, R4, R5, R6 et R8 contiennent des mots. Cela fait 7 lignes. Retirez la copie R2 et la ligne non tranchée R8. 7 - 1 - 1 = 5. La même base de texte apparaît des deux façons.

| Dénombrement | Comment on y arrive | Résultat |
| --- | --- | --- |
| Lignes brutes | R1 à R8 | 8 |
| Lignes copiées en trop | R2 copie R1 | 1 |
| Lignes sans identifiant de commentaire | R8 | 1 |
| Commentaires connus distincts | 8 - 1 - 1 | 6 |
| Commentaires connus au texte vide | C6 | 1 |
| Base de texte | 6 - 1 | 5 |
| Commentaires connus avec un propriétaire | C1 à C5 | 5 |
| Comptes connus distincts | A, B, C et D | 4 |

R1, R2 et R3 disent toutes Super publication. Comptez C1 une seule fois, car R1 et R2 partagent un identifiant. Conservez C2, car son identifiant est différent. Si vous écartez les mots répétés, vous perdez un vrai commentaire. Si vous conservez chaque ligne correspondante, vous comptez C1 deux fois.

Les valeurs de propriétaire sur les six commentaires connus sont A, A, B, C, D et null. Cinq commentaires connus ont un propriétaire : C1 à C5. Le compte A a écrit C1 et C2. Comptes connus distincts = 5 - 1. Cela fait 4. Les quatre comptes sont A, B, C et D. Cinq valeurs de propriétaire sont cinq commentaires, pas cinq comptes, et pas cinq personnes.

Les lignes brutes avec un propriétaire non null sont R1, R2, R3, R4, R5 et R6. Ce dénombrement est 6. Six est le mauvais total de commentaires, car R2 est une copie. Après avoir retiré la copie, cinq valeurs de propriétaire restent. Cinq est encore le mauvais total de comptes, car A apparaît deux fois.

Le fichier n'a pas de champ personne. Une personne pourrait utiliser deux comptes. Deux personnes pourraient partager un compte. Signalez 4 comptes connus. Ne signalez pas 4 personnes. Ne signalez pas 5 personnes. C6 est un commentaire connu avec un propriétaire null. N'écrivez pas propriétaire 0 pour C6. Six commentaires connus et quatre comptes connus sont tous deux vrais dans ce fichier. Ce n'est pas le même dénombrement.

R8 a le texte Sympa, une heure, et pas d'identifiant de commentaire. Aucune autre ligne ne dit Sympa. Cela ne fait toujours pas de R8 un commentaire connu. Une heure ne remplace pas un identifiant de commentaire. Ne fusionnez pas R8 avec C6 parce que les deux propriétaires sont null. Un null partagé n'est pas une correspondance. Rien n'établit que R8 est un nouveau commentaire. Rien n'établit non plus qu'il s'agit d'une copie. Gardez-le non tranché jusqu'à ce que vous examiniez le JSON d'origine. N'utilisez pas un identifiant de commentaire absent comme clé de fusion.

Utilisez 5 seulement comme base d'une mesure qui exige des commentaires connus avec du texte. Conservez C6 dans le dénombrement de disponibilité. La disponibilité signifie si la valeur était présente. Pour une mesure sur tous les commentaires connus, la base est 6. Écrivez la base à côté de la mesure. N'utilisez pas 8, 6 et 5 comme s'il s'agissait d'une seule base. Cette histoire ne calcule pas une part d'éloges ni aucun autre résultat.

Commentaires connus avec `createdAt` = 6 sur 6. Commentaires connus sans date = 0 dans cette histoire. R8 a une heure, mais cette heure ne lui donne pas d'identifiant de commentaire. Une vraie exécution peut différer. Si vous avez utilisé un filtre de dates, les commentaires avec `createdAt` null auraient déjà été ignorés.

## 6. Ajoutez les codes à côté du texte brut

Conservez les mots sources dans `raw_text`. N'y corrigez pas l'orthographe. N'y retirez pas un saut de ligne. Si vous avez besoin de mots nettoyés, placez-les dans une nouvelle colonne telle que `coding_text`. Placez chaque choix dans de nouvelles colonnes : `coding_unit`, `code`, `coder`, `decision_note` et `coding_version`.

`coding_unit` nomme ce que vous codez. Dans cet exercice, l'unité est le commentaire. `code` est votre étiquette manuelle. `coder` nomme la personne qui l'a choisie. `decision_note` dit pourquoi. `coding_version` nomme l'ensemble de règles. Si la règle change, écrivez une nouvelle version. N'écrasez pas l'ancienne note en silence.

[Une deuxième personne peut répéter le choix](/fr/articles/verifier-l-accord-entre-deux-codeurs-de-commentaires/) seulement si ces colonnes restent remplies. L'Actor ne les remplit pas.

Le même fichier fictif continue ici. Ces étiquettes sont des marques d'exercice par un codeur fictif nommé casey. Ce ne sont pas des champs de l'Actor. Ce ne sont pas des scores de sentiment. Ce ne sont pas des constats sur des personnes réelles.

| commentId | raw_text | coding_unit | code | coder | decision_note | coding_version |
| --- | --- | --- | --- | --- | --- | --- |
| C1 | Super publication | comment | in_text_base | casey | Mêmes valeurs sources que la ligne copiée. Comptez C1 une seule fois. | v1 |
| C2 | Super publication | comment | in_text_base | casey | Les mots correspondent à C1. L'identifiant de commentaire diffère, donc conservez les deux. | v1 |
| C3 | Belle photo | comment | in_text_base | casey | Identifiant de commentaire différent et compte B. | v1 |
| C4 | J'adore ça | comment | in_text_base | casey | Identifiant de commentaire différent et compte C. | v1 |
| C5 | Génial | comment | in_text_base | casey | Identifiant de commentaire différent et compte D. | v1 |

C1 et C2 restent deux unités parce que leurs identifiants de commentaire diffèrent. Le compte A a écrit les deux. L'unité compte les regrouperait. L'unité commentaire ne le fait pas.

C6 reste hors de ce tableau d'exercice parce que son texte est vide. Conservez C6 dans le dénombrement de disponibilité. R8 reste hors du tableau parce qu'il n'a pas d'identifiant de commentaire. Ne donnez pas un code à R8 pour le forcer dans la base de texte.

Si la publication source disparaît plus tard, conservez le fichier daté comme l'observation issue de `collectedAt`. Ne modifiez pas les anciens mots pour les faire correspondre à une page absente. Une règle de conservation est un choix écrit distinct sur la durée de conservation du fichier et sur qui peut le voir. Cet article ne fixe pas cette règle.

## 7. Écrivez le registre de l'échantillon

Un registre est un dénombrement écrit de ce que vous avez demandé, de ce que vous avez enregistré et de ce que vous avez laissé de côté. Construisez-le à partir du JSON d'origine et d'OUTPUT. Le registre fictif ci-dessous n'utilise que les lignes inventées. Cette histoire n'a pas de rapport OUTPUT. Là où une vraie exécution doit copier OUTPUT, l'histoire dit inconnu.

| Ligne du registre | Valeur dans le fichier fictif |
| --- | --- |
| Publications demandées | 1 publication inventée |
| Lignes enregistrées | 8 |
| Lignes copiées en trop | 1 |
| Commentaires connus distincts | 6 |
| Base de texte | 5 |
| Commentaires connus au texte vide | 1 |
| Lignes non tranchées | 1 |
| Comptes connus distincts | 4 |
| Commentaires connus avec une date | 6 |
| Commentaires connus sans date | 0 |
| Cibles utiles | Inconnu dans cette histoire. Lisez OUTPUT. |
| Cibles en échec | Inconnu dans cette histoire. Lisez OUTPUT. |
| Cibles vides | Inconnu dans cette histoire. Lisez OUTPUT. |
| Cibles plafonnées | Inconnu dans cette histoire. Lisez OUTPUT. |

Sur une vraie exécution, copiez `requestedTargets`, `savedRows` et `cappedTargets` depuis OUTPUT. Copiez `resultState`, `sampleHealth` et `stopReason` pour chaque publication. Puis comptez vous-même les identifiants de commentaire distincts. Ne remplacez pas une valeur de rapport par une supposition. Ne collez pas les nombres de cette histoire dans ce rapport.

| Élément | Ce que vous faites | Raison |
| --- | --- | --- |
| R2 | Laissez-la hors des totaux de commentaires | Ligne copiée de C1 avec les mêmes valeurs sources |
| C6 | Laissez-le hors de la base de texte seulement | Texte vide. Conservez-le dans le dénombrement de disponibilité |
| R8 | Gardez-la sur une liste non tranchée distincte | Pas d'identifiant de commentaire. N'utilisez pas un identifiant absent comme clé de fusion |

Écrivez chaque raison d'exclusion à côté de la ligne. L'ordre par défaut et la visibilité publique peuvent changer les voix qui apparaissent. Dites-le dans la note du registre. Une cible plafonnée a atteint le plafond que vous avez fixé. Elle ne nomme pas à elle seule chaque commentaire resté dehors.

Le total affiché par la source est le nombre de commentaires montré sur la page de la publication. Gardez-le distinct des lignes enregistrées. Vous utiliserez les deux nombres dans la note de méthode.

## 8. Écrivez une note de méthode qui correspond au fichier

Écrivez ce que vous avez réellement enregistré. Dites que les lignes sont des commentaires de premier niveau montrés publiquement. Nommez les liens des publications, l'ordre, le plafond, la fenêtre de dates et l'heure de collecte. Gardez le total affiché par la source distinct des lignes enregistrées.

Si ces deux nombres diffèrent, la cause n'est pas connue à partir de la seule différence. L'écart ne prouve pas un défaut de collecte. L'écart ne prouve pas non plus que la collecte était complète ou sans faute. Un plafond, un arrêt du fil, l'atteinte de la limite de temps, un échec de source, des commentaires masqués ou des réponses qui n'ont jamais été des lignes peuvent tous changer les dénombrements. Votre note OUTPUT est l'endroit où enregistrer l'arrêt que vous avez réellement vu.

Si les lignes enregistrées sont à zéro, n'écrivez pas que la publication n'avait pas de commentaires. Lisez d'abord les états des cibles.

Ces mots sont un modèle. Remplacez chaque crochet par votre propre exécution. Ne copiez pas les dénombrements fictifs dedans.

```text
We saved publicly shown top-level comments.
The posts were the public URLs we listed before the run.
The order was default.
The cap per post was [your cap].
The collection time was [collectedAt].
The date window was [your dates], or we did not use a date filter.
We saved [saved rows] rows.
The source displayed total was [source total], or we did not record one.
A difference between those numbers is not proof of a bug.
That difference is also not proof that the file is complete.
We did not export reply text.
Null means a value was unavailable.
We kept zero and false as real values.
We counted comments, accounts, and posts separately.
This file describes the saved public comments only.
It does not describe all Instagram users.
```

8. Écrivez une note de méthode qui correspond au fichier

Laissez le total affiché par la source vide si vous ne l'avez pas noté. Ne l'inventez pas. Une deuxième personne doit pouvoir remonter de chaque commentaire codé à un identifiant de commentaire, un lien de publication et `collectedAt`.

## Action suivante

Remplacez le Reel d'exemple par une publication publique que vous connaissez déjà. Utilisez un plafond de 3, l'ordre par défaut et `collectAllAvailable` réglé sur false. Comparez les identifiants et le texte avec le JSON d'origine avant d'élever le plafond. Partez de l'[Actor Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper) et de la [Task d'export vers CSV](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv).

## Sources et lectures complémentaires

- [Actor Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper)
- [Task d'export des commentaires Instagram vers CSV](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv)
- [Question Télécharger les commentaires Instagram vers Excel](https://www.reddit.com/r/InstagramMarketing/comments/15m86x1/download_instagram_comments_to_excel/)
- [Importer ou exporter des fichiers texte ou CSV](https://support.microsoft.com/en-us/office/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba)
- [Stockage des datasets Apify](https://docs.apify.com/platform/storage/dataset)