

# Exportar comentários públicos do Instagram para o Excel para uma tese

Exporte comentários públicos de primeiro nível segundo regras que você escreve e, em seguida, abra esses comentários no Excel. Mantenha cada ID de origem como texto. Escreva o que esses comentários podem mostrar antes de codificá-los.

Um comentário de primeiro nível é um comentário na própria publicação. Não é uma resposta sob outro comentário. Neste artigo, uma amostra são os comentários públicos que você salvou segundo as suas regras escritas. Não é todo comentário do Instagram.

Exportar significa baixar as linhas salvas como um arquivo. Um Actor é um programa hospedado que coleta linhas. Uma Task é uma entrada salva, já definida, para esse Actor. Uma execução é uma passagem de coleta com uma entrada. O Actor salva as linhas de origem. Você faz as contagens e a codificação.

## O que cada linha salva contém

Estas regras de campo foram conferidas em 2026-10-13 para o build público 0.1.21 do [Actor Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper). Um campo é um valor nomeado em uma linha. Este build salva um comentário público de primeiro nível em cada linha.

Cada linha tem `postUrl`, `postId`, `postShortCode`, `commentId`, `text`, `createdAt`, `likesCount`, `repliesCount`, `ownerId`, `ownerUsername`, `ownerVerified` e `collectedAt`.

`postUrl` é o link da publicação que você informou. `postId` é a identidade de origem dessa publicação. `postShortCode` é o código curto dentro desse link. O código curto é a parte depois de `/p/`, `/reel/` ou `/tv/`. `commentId` é a identidade de origem de um comentário. `text` são as palavras do comentário. `createdAt` é o horário do comentário na origem. `likesCount` é a contagem de curtidas que a origem exibiu. `repliesCount` é a contagem de respostas que a origem exibiu. Não é o texto da resposta. `ownerId` é a identidade de origem da conta que publicou o comentário. `ownerUsername` é o nome público dessa conta. `ownerVerified` indica se a origem mostrou uma marca de verificação nessa conta. `collectedAt` é o horário em que o Actor salvou a linha.

Null significa que o valor não estava disponível. Um texto vazio não tem caracteres. Texto vazio não é o mesmo que null. Zero significa que o número era zero. False registra um status de verificação negativo: a origem mostrou a conta como não verificada. Esse status não é um valor indisponível. Mantenha null, zero e false como valores diferentes. Não transforme null em zero nem em false.

Este build não coloca um campo de status em cada linha. Não salva `parentId`. Não salva o texto da resposta. Não salva a legenda da publicação. Não salva contagens de seguidores. Não salva uma pontuação de bot. Uma pontuação de bot tentaria adivinhar se uma conta é automática. Não salva um rótulo de sentimento. Sentimento seria um rótulo como elogio ou reclamação. Não marca quem conta como membro pleno de um grupo. Um ID de autor pode ser null.

Não há linha de resposta para codificar. Um `repliesCount` null não é uma resposta com texto vazio. Não é um sentimento.

## 1. Escreva o enquadramento antes de coletar

O enquadramento é a lista de publicações que você escolheu e as regras dos comentários que você mantém. Escreva o enquadramento antes de executar o Actor.

Escreva estes itens:

- Os links públicos conhecidos das publicações.
- A regra que colocou essas publicações na lista.
- A janela de datas, ou uma nota de que você não vai filtrar por data.
- O horário de coleta que você vai copiar de `collectedAt`.
- A regra de idioma.
- A coisa que você conta: comentários, contas ou publicações.

Uma janela de datas é o primeiro dia e o último dia que você escolhe manter. A coisa que você conta é a sua unidade. [Um comentário, uma conta e uma publicação são unidades diferentes](/pt-BR/articles/verificar-se-um-t%C3%B3pico-do-reddit-controla-o-resultado/). Escreva o horário de coleta como `collectedAt`, não o dia em que você começa a codificar.

Escreva a lista de publicações antes de ler os comentários. Assim, você não acrescenta uma publicação porque os comentários dela combinam com a sua ideia. Escreva a janela de datas antes da execução, ou escreva que você não vai usar uma janela. Escreva a unidade na mesma nota. Contagens posteriores são fáceis de misturar. O arquivo inventado abaixo mostra por quê. O Actor não acrescenta um campo de idioma. Escreva uma regra de idioma que você consiga seguir. Por exemplo, mantenha todo texto salvo e marque o idioma em uma coluna nova. Se você descartar uma linha, escreva o motivo.

Use um link público que você já conhece. O link precisa conter `/p/`, `/reel/` ou `/tv/`. Um link de perfil é uma página de conta. Um Story é um item de story que fica disponível por pouco tempo. Um link de hashtag é uma página de tag. Search e Explore são páginas de navegação. Essas rotas não têm suporte. Use somente publicações públicas. Não colete contas privadas nem comentários ocultos.

A amostra pode descrever o texto de comentário público que você salvou. Ela não pode representar todos os usuários do Instagram. Uma afirmação sobre todos os usuários precisa de um plano separado que selecione pessoas. Este artigo não escreve esse plano.

Se você usar um filtro de data, as datas de início e de fim são inclusivas. Inclusivo significa que um comentário no primeiro dia ou no último dia pode permanecer. Um comentário sem `createdAt` fica de fora enquanto um filtro de data está ligado. Um filtro de data olha no máximo 250 comentários públicos por publicação, a menos que você remova o limite de resultados. A ordem dos mais antigos primeiro usa esse mesmo limite de leitura. Remover o limite de resultados ainda não coleta o feed público completo. Escreva esse limite nas suas notas se você usar datas ou a ordem dos mais antigos primeiro.

## 2. Confira uma publicação com um teto de 3

Um piloto é uma primeira execução muito pequena. Você o usa para conferir a forma do arquivo. Comece com uma publicação pública conhecida e um teto de 3. Um teto é o maior número de comentários que você pede para salvar de uma publicação. O teto é um máximo, não uma contagem prometida.

A [Task salva de exportação para CSV](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv) foi conferida em 2026-10-13. A entrada salva dela é:

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

2. Confira uma publicação com um teto de 3

Esse Reel é uma entrada inicial. Uma entrada inicial não é o seu estudo. Uma execução não faz a sua codificação. Substitua o Reel pelo link da sua própria publicação pública.

Use esta forma para o piloto:

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

2. Confira uma publicação com um teto de 3

`YOURPUBLICPOST` é um marcador. Um marcador é um texto provisório que você precisa substituir. Não execute essas letras como se fossem uma publicação real.

`commentSortMode` definido como `default` mantém a ordem da origem para esse pedido. A ordem padrão não é uma promessa dos comentários mais novos. Não é uma promessa dos comentários mais antigos. Não é um sorteio aleatório de todos os usuários. Se mais tarde você escolher os mais novos ou os mais antigos, essa escolha ordena os comentários que a execução coletou. Ela, por si só, não atravessa o limite de leitura descrito no passo 1.

`collectAllAvailable` definido como false mantém o seu teto numérico. Se você definir como true, o teto numérico é removido. A execução ainda pode parar quando o feed público termina, quando o tempo acaba ou quando uma origem falha. Essa parada ainda não é todo comentário público. Não é todo usuário do Instagram. Mantenha `collectAllAvailable` como false no piloto.

Uma publicação mantém a primeira conferência pequena. Se duas publicações falham ao mesmo tempo, a causa é mais difícil de ver. Um teto de 3 permite ler cada linha salva a olho. O valor 250 da Task é só um máximo salvo. Não é uma promessa de 250 comentários. Uma pergunta pública mais antiga pode falar de 100 comentários como limite da ferramenta. Esse número antigo não é o teto atual do Actor. O teto que você escreveu é o máximo que você define. Um teto mais alto ainda não é todo comentário.

Depois da execução, compare `postShortCode` com a sua URL. Em seguida, leia OUTPUT. OUTPUT é o relatório da execução salvo com as linhas. Leia `requestedTargets`, `savedRows` e `cappedTargets` no topo. Para cada alvo, leia `resultState`, `sampleHealth` e `stopReason`.

Uma execução conferida salvou 3 linhas para o código curto pedido. Essas linhas tinham IDs de comentário, texto, IDs de autor e datas. OUTPUT mostrou capped, motivo de parada `max_comments_reached` e `savedRows` 3. `repliesCount` era null. Essa execução mostra a forma dos campos nessa origem. Ela não mostra todos os comentários da publicação. Ela não prova qual comentário é o mais antigo. Ela não lista texto de resposta nem outras publicações. IDs de autor estavam presentes nessa execução. Uma publicação posterior ainda pode devolver um owner ID null.

O teto parou essa execução. Um resultado que atingiu o teto configurado não significa que a publicação tem só 3 comentários. Escolha o teto do estudo só depois que esta conferência da forma passe. Mantenha `collectAllAvailable` como false até você entender as outras paradas.

Se o piloto não devolver nenhuma linha, não escreva que a publicação não tem comentários. A visibilidade da origem pode falhar. Leia `resultState`, `sampleHealth` e `stopReason` antes de decidir. Linhas vazias não são o mesmo que um sentimento codificado.

## 3. Guarde o JSON original

JSON é um formato de texto que pode manter valores aninhados e a palavra null. JSONL significa um objeto JSON em cada linha. Um dataset é o conjunto salvo de linhas de uma execução. Você pode exportá-lo como descrito no [guia de dataset da Apify](https://docs.apify.com/platform/storage/dataset).

Salve primeiro o JSON ou JSONL original e o relatório OUTPUT. Faça o arquivo CSV ou Excel como cópia de trabalho depois disso. CSV significa uma tabela de texto que separa colunas com vírgulas. Salve também a entrada que você usou. Salve os links das publicações, o teto, a ordenação, `collectAllAvailable` e quaisquer datas.

A linha de comentário não tem campo de status para o dataset inteiro. O Excel não guarda OUTPUT dentro das células de comentário. Se você guardar só o arquivo de trabalho, pode perder as regras que o produziram.

Guarde o JSON porque o CSV pode esconder a diferença entre null e vazio. Estes dois valores fictícios não são uma contagem de estudo:

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

3. Guarde o JSON original

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

3. Guarde o JSON original

Uma célula CSV pode parecer em branco para null e para texto vazio. Só o JSON original diz qual dos dois você tinha. Zero curtidas são reais. False é um valor real de verificação. Null não é zero, e null não é false.

## 4. Importe o CSV com IDs armazenados como texto

Baixe a cópia de trabalho como CSV ou Excel a partir do dataset. Para CSV, abra o Excel e use Dados e, em seguida, De Texto/CSV. Revise o tipo de cada coluna antes de carregar o arquivo. A Microsoft explica esse caminho de importação em [Importar ou exportar arquivos de texto ou CSV](https://support.microsoft.com/en-us/office/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba).

Defina `postId`, `commentId` e `ownerId` como Texto. IDs reais de origem muitas vezes parecem números longos. Uma coluna de número pode descartar dígitos de um ID longo. Mantenha `text` como texto. Mantenha `createdAt` e `collectedAt` como data e hora só se ainda coincidirem com o JSON. UTC é o relógio mundial compartilhado. Ele não usa o seu fuso horário local. Se o Excel deslocar o relógio, mantenha o horário como texto. Não confie no tipo que o Excel adivinha.

Depois da importação, compare um `commentId` e um `createdAt` com o JSON sem alteração. Compare também a contagem de linhas. A seção seguinte dá um teste de texto inventado para esta conferência.

## 5. Conte as linhas antes de codificar

Confira o arquivo de trabalho contra o JSON original. Conte as linhas. Conte IDs de comentário diferentes que não estão em branco. Diferente significa que você conta o mesmo ID uma vez. Encontre linhas copiadas. Encontre linhas sem ID de comentário. Use o JSON para distinguir null de vazio.

### Teste fictício de importação

O arquivo seguinte é fictício. Fictício significa que nós o inventamos para ensinar. Não é um resultado do Actor. Não faz parte da contagem de oito linhas abaixo. Não é um resultado de uma execução real do Excel.

O ID de teste é `1234567890123456789`. Esse ID tem 19 dígitos. Armazene-o como texto. O ID esperado é exatamente esses 19 dígitos. Este artigo não inventa um número errado do Excel. Ele informa os dígitos que você ainda precisa ver.

O texto de teste tem uma vírgula, uma quebra de linha, aspas e a palavra café. A letra é não faz parte do conjunto básico de A a Z do inglês. O arquivo precisa manter é.

Este JSON é a origem fictícia:

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

5. Conte as linhas antes de codificar

Em JSON, `\n` significa uma quebra de linha. Este CSV é a mesma linha fictícia. O texto entre aspas contém uma quebra de linha real. Aspas internas são duplicadas. Isso é a escrita normal de CSV.

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

5. Conte as linhas antes de codificar

Depois de uma importação correta, o ID ainda é:

```text
1234567890123456789
```

5. Conte as linhas antes de codificar

O texto ainda é:

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

5. Conte as linhas antes de codificar

Esses são os valores esperados que devem permanecer. Não são um relatório do seu computador. Se a coluna de ID for um número, ou se café perder é, pare e corrija a importação. Não comece a codificar em um arquivo danificado.

### Arquivo de estudo fictício de oito linhas

As oito linhas seguintes também são fictícias. Não são um resultado do Actor. Não são a execução conferida de três linhas. São um arquivo de ensino de uma publicação inventada. Não copie estas contagens para uma tese real.

Todas as linhas compartilham estes valores de publicação:

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

`postId` tem 19 dígitos. Em uma importação real, precisa ser Texto. Oito linhas de comentário ainda pertencem a uma publicação. Não conte oito publicações.

Na tabela, null significa indisponível. Vazio significa que o texto não tem caracteres. Os rótulos curtos de autor A, B, C e D substituem IDs de origem. IDs reais de autor podem ser longos. Armazene-os também como texto.

| linha | commentId | text | ownerId | ownerUsername | likesCount | repliesCount | ownerVerified | createdAt |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| R1 | C1 | Ótima publicação | A | name_a | 2 | null | false | 2026-10-01T10:00:00Z |
| R2 | C1 | Ótima publicação | A | name_a | 2 | null | false | 2026-10-01T10:00:00Z |
| R3 | C2 | Ótima publicação | A | name_a | 1 | null | false | 2026-10-02T10:00:00Z |
| R4 | C3 | Foto boa | B | name_b | 0 | 0 | false | 2026-10-03T10:00:00Z |
| R5 | C4 | Amei isto | C | name_c | 4 | null | false | 2026-10-04T10:00:00Z |
| R6 | C5 | Incrível | D | name_d | 3 | null | false | 2026-10-05T10:00:00Z |
| R7 | C6 | vazio | null | null | null | null | null | 2026-10-06T10:00:00Z |
| R8 | null | Legal | null | null | null | null | null | 2026-10-07T10:00:00Z |

R1 e R2 têm os mesmos valores de origem. R2 é uma linha de exportação copiada. Uma linha copiada repete o mesmo ID de comentário e os mesmos valores de origem. R3 usa as mesmas palavras, Ótima publicação, mas o ID de comentário é C2. C2 é um comentário diferente. O horário e a contagem de curtidas também diferem. Essas diferenças ajudam você a ver isso. O ID de comentário bastaria mesmo se os outros campos coincidissem.

Em R4, `likesCount` 0 significa zero curtidas. `repliesCount` 0 significa que a origem exibiu zero respostas. Você ainda não tem o texto da resposta. `ownerVerified` false significa que a origem mostrou a conta como não verificada. Em R7, null não significa zero nem false. C6 tem texto vazio. Esta história não usa texto null para C6. Uma cópia de trabalho CSV pode fazer esse texto vazio, o autor null, as curtidas null, as respostas null e a marca de verificação null parecerem todos em branco. Use o JSON original antes de codificar C6.

Conte o arquivo nesta ordem:

Linhas brutas são todas as linhas, inclusive a cópia. Linhas brutas = 8.

R2 é a cópia extra. Linhas copiadas extras = 1.

R8 não tem ID de comentário. Linhas sem ID de comentário = 1.

Comentários conhecidos distintos = 8 - 1 - 1. Isso é 6. Os seis IDs são C1, C2, C3, C4, C5 e C6.

C6 tem texto vazio. Comentários conhecidos com texto vazio = 1.

A base de texto = 6 - 1. Isso é 5. A base de texto são os comentários conhecidos com texto que você pode codificar. Esses comentários são C1, C2, C3, C4 e C5.

Você também pode começar pelas linhas que contêm palavras. R1, R2, R3, R4, R5, R6 e R8 têm palavras. Isso é 7 linhas. Remova a cópia R2 e a linha não resolvida R8. 7 - 1 - 1 = 5. A mesma base de texto aparece dos dois modos.

| Contagem | Como se chega ao valor | Resultado |
| --- | --- | --- |
| Linhas brutas | R1 a R8 | 8 |
| Linhas copiadas extras | R2 copia R1 | 1 |
| Linhas sem ID de comentário | R8 | 1 |
| Comentários conhecidos distintos | 8 - 1 - 1 | 6 |
| Comentários conhecidos com texto vazio | C6 | 1 |
| Base de texto | 6 - 1 | 5 |
| Comentários conhecidos com autor | C1 a C5 | 5 |
| Contas conhecidas distintas | A, B, C e D | 4 |

R1, R2 e R3 dizem Ótima publicação. Conte C1 uma vez porque R1 e R2 compartilham um ID. Mantenha C2 porque o ID é diferente. Se você descartar palavras repetidas, perde um comentário real. Se você mantiver toda linha coincidente, conta C1 duas vezes.

Os valores de autor nos seis comentários conhecidos são A, A, B, C, D e null. Cinco comentários conhecidos têm autor: C1 a C5. A conta A escreveu C1 e C2. Contas conhecidas distintas = 5 - 1. Isso é 4. As quatro contas são A, B, C e D. Cinco valores de autor são cinco comentários, não cinco contas e não cinco pessoas.

As linhas brutas com autor não null são R1, R2, R3, R4, R5 e R6. Essa contagem é 6. Seis é o total errado de comentários porque R2 é uma cópia. Depois de remover a cópia, restam cinco valores de autor. Cinco ainda é o total errado de contas porque A aparece duas vezes.

O arquivo não tem campo de pessoa. Uma pessoa poderia usar duas contas. Duas pessoas poderiam compartilhar uma conta. Informe 4 contas conhecidas. Não informe 4 pessoas. Não informe 5 pessoas. C6 é um comentário conhecido com autor null. Não escreva autor 0 para C6. Seis comentários conhecidos e quatro contas conhecidas são ambos verdade neste arquivo. Não são a mesma contagem.

R8 tem o texto Legal, um horário e nenhum ID de comentário. Nenhuma outra linha diz Legal. Isso ainda não faz de R8 um comentário conhecido. Um horário não substitui um ID de comentário. Não una R8 com C6 porque os dois autores são null. Um null compartilhado não é uma correspondência. R8 não está provado como comentário novo. Não está provado como cópia. Mantenha R8 não resolvido até você revisar o JSON original. Não una linhas por um ID de comentário em branco.

Use 5 só como base de uma medida que precisa de comentários conhecidos com texto. Mantenha C6 na contagem de disponibilidade. Disponibilidade significa se o valor estava presente. Para uma medida sobre todos os comentários conhecidos, a base é 6. Escreva a base ao lado da medida. Não use 8, 6 e 5 como se fossem uma só base. Esta história não calcula uma parcela de elogios nem qualquer outro resultado.

Comentários conhecidos com `createdAt` = 6 de 6. Comentários conhecidos sem data = 0 nesta história. R8 tem um horário, mas esse horário não lhe dá um ID de comentário. Uma execução real pode ser diferente. Se você usou um filtro de data, comentários com `createdAt` null já teriam ficado de fora.

## 6. Acrescente códigos ao lado do texto bruto

Mantenha as palavras de origem em `raw_text`. Não corrija a ortografia ali. Não remova uma quebra de linha ali. Se você precisar de palavras tratadas, coloque-as em uma coluna nova, como `coding_text`. Coloque cada escolha em colunas novas: `coding_unit`, `code`, `coder`, `decision_note` e `coding_version`.

`coding_unit` nomeia a coisa que você codifica. Neste exercício, a unidade é o comentário. `code` é o seu rótulo manual. `coder` nomeia a pessoa que o escolheu. `decision_note` diz o motivo. `coding_version` nomeia o conjunto de regras. Se a regra mudar, escreva uma versão nova. Não substitua a nota antiga em silêncio.

[Uma segunda pessoa pode repetir a escolha](/pt-BR/articles/verificar-concordancia-entre-codificadores-de-comentarios-do-reddit/) só se essas colunas permanecerem preenchidas. O Actor não as preenche.

O mesmo arquivo fictício continua aqui. Estes rótulos são marcas de prática de uma pessoa fictícia que codifica, chamada casey. Não são campos do Actor. Não são pontuações de sentimento. Não são achados sobre pessoas reais.

| commentId | raw_text | coding_unit | code | coder | decision_note | coding_version |
| --- | --- | --- | --- | --- | --- | --- |
| C1 | Ótima publicação | comment | in_text_base | casey | Mesmos valores de origem que a linha copiada. Conte C1 uma vez. | v1 |
| C2 | Ótima publicação | comment | in_text_base | casey | As palavras coincidem com C1. O ID de comentário difere, então mantenha os dois. | v1 |
| C3 | Foto boa | comment | in_text_base | casey | ID de comentário diferente e conta B. | v1 |
| C4 | Amei isto | comment | in_text_base | casey | ID de comentário diferente e conta C. | v1 |
| C5 | Incrível | comment | in_text_base | casey | ID de comentário diferente e conta D. | v1 |

C1 e C2 continuam duas unidades porque os IDs de comentário diferem. A conta A escreveu os dois. A unidade conta os agruparia. A unidade comentário não agrupa.

C6 fica fora desta tabela de prática porque o texto está vazio. Mantenha C6 na contagem de disponibilidade. R8 fica fora porque não tem ID de comentário. Não dê um código a R8 para forçá-lo na base de texto.

Se a publicação de origem desaparecer depois, mantenha o arquivo datado como a observação de `collectedAt`. Não edite as palavras antigas para combinar com uma página ausente. Uma regra de retenção é uma escolha escrita à parte sobre por quanto tempo você guarda o arquivo e quem pode vê-lo. Este artigo não define essa regra.

## 7. Escreva o registro da amostra

Um registro é uma contagem escrita do que você pediu, do que você salvou e do que você deixou de fora. Monte o registro a partir do JSON original e de OUTPUT. O registro fictício abaixo usa só as linhas inventadas. Esta história não tem relatório OUTPUT. Onde uma execução real precisa copiar OUTPUT, a história diz desconhecido.

| Linha do registro | Valor no arquivo fictício |
| --- | --- |
| Publicações pedidas | 1 publicação inventada |
| Linhas salvas | 8 |
| Linhas copiadas extras | 1 |
| Comentários conhecidos distintos | 6 |
| Base de texto | 5 |
| Comentários conhecidos com texto vazio | 1 |
| Linhas não resolvidas | 1 |
| Contas conhecidas distintas | 4 |
| Comentários conhecidos com data | 6 |
| Comentários conhecidos sem data | 0 |
| Alvos úteis | Desconhecido nesta história. Leia OUTPUT. |
| Alvos com falha | Desconhecido nesta história. Leia OUTPUT. |
| Alvos vazios | Desconhecido nesta história. Leia OUTPUT. |
| Alvos que atingiram o teto | Desconhecido nesta história. Leia OUTPUT. |

Em uma execução real, copie `requestedTargets`, `savedRows` e `cappedTargets` de OUTPUT. Copie `resultState`, `sampleHealth` e `stopReason` de cada publicação. Em seguida, conte você mesmo os IDs de comentário distintos. Não substitua um valor de relatório por um palpite. Não cole os números desta história nesse relatório.

| Item | O que você faz | Motivo |
| --- | --- | --- |
| R2 | Deixe de fora dos totais de comentários | Linha copiada de C1 com os mesmos valores de origem |
| C6 | Deixe de fora só da base de texto | Texto vazio. Mantenha na contagem de disponibilidade |
| R8 | Mantenha em uma lista separada de não resolvidos | Sem ID de comentário. Não una por um ID em branco |

Escreva cada motivo de exclusão ao lado da linha. A ordem padrão e a visibilidade pública podem mudar quais vozes aparecem. Diga isso na nota do registro. Um alvo com resultado capped atingiu o teto que você definiu. Um teto só configurado não é o mesmo que um teto atingido. Esse alvo, por si só, não nomeia todo comentário que ficou de fora.

O total exibido pela origem é a contagem de comentários mostrada na página da publicação. Mantenha esse total separado das linhas salvas. Você vai usar os dois números na nota de métodos.

## 8. Escreva uma nota de métodos que combine com o arquivo

Escreva o que você de fato salvou. Diga que as linhas são comentários de primeiro nível mostrados publicamente. Nomeie os links das publicações, a ordem, o teto, a janela de datas e o horário de coleta. Mantenha o total exibido pela origem separado das linhas salvas.

Se esses dois números diferem, a causa não é conhecida só pela diferença. A lacuna não prova um defeito de coleta. A lacuna também não prova que a coleta foi completa ou sem falha. Um teto, uma parada do feed, uma parada por tempo, uma falha da origem, comentários ocultos ou respostas que nunca foram linhas podem todos mudar as contagens. A sua nota de OUTPUT é o lugar para registrar a parada que você de fato viu.

Se as linhas salvas forem zero, não escreva que a publicação não tinha comentários. Leia primeiro os estados dos alvos.

Estas palavras são um modelo. Substitua cada colchete pela sua própria execução. Não copie as contagens fictícias para o modelo.

```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. Escreva uma nota de métodos que combine com o arquivo

Deixe o total exibido pela origem em branco se você não o registrou. Não o invente. Uma segunda pessoa deve conseguir rastrear cada comentário codificado até um ID de comentário, um link de publicação e `collectedAt`.

## Próxima ação

Substitua o Reel de amostra por uma publicação pública que você já conhece. Use um teto de 3, a ordem padrão e `collectAllAvailable` definido como false. Compare os IDs e o texto com o JSON original antes de aumentar o teto. Comece pelo [Actor Instagram Comments Scraper](https://apify.com/chronometrica/instagram-comments-scraper) e pela [Task de exportação para CSV](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv).

## Fontes e leituras adicionais

- [Instagram Comments Scraper Actor](https://apify.com/chronometrica/instagram-comments-scraper)
- [Task de exportar comentários do Instagram para CSV](https://apify.com/chronometrica/instagram-comments-scraper/examples/export-instagram-comments-to-csv)
- [Pergunta sobre baixar comentários do Instagram para o Excel](https://www.reddit.com/r/InstagramMarketing/comments/15m86x1/download_instagram_comments_to_excel/)
- [Importar ou exportar arquivos de texto ou CSV](https://support.microsoft.com/en-us/office/import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba)
- [Armazenamento de dataset da Apify](https://docs.apify.com/platform/storage/dataset)