
Um coletor automatizado na web é chamado de Actor. Um conjunto salvo de configurações de um Actor é chamado de Task. Quando um coletor de vagas exporta apenas 5 vagas, embora uma página web mostre 50 ou mais, as pessoas muitas vezes supõem que a paginação causou as linhas ausentes. Paginação é a forma como um site divide uma lista longa em várias páginas. Supor é inseguro, porque filtros, limites de linhas ou páginas bloqueadas podem causar exatamente o mesmo resultado. Você deve testar cada causa com evidência clara antes de alterar as configurações.
+-----------------------------------------------------------------------+
| Check Output Summary |
+-----------------------------------------------------------------------+
|
+-------------------------+-------------------------+
| |
v v
[stopReason matches reported cap] [failedRequests > 0]
| |
v v
Row cap or page limit hit based Request failures recorded;
on actual stored stop evidence. cause remains unresolved.O LinkedIn Jobs Scraper público e seu exemplo predefinido de Task definem as regras de coleta. A entrada salva atual tem `searchTerm` definido como software engineer, `maxItems` definido como 100, `maxPagesPerSearch` definido como 2, `postedWithin` definido como 7d, `saveOnlyUniqueItems` definido como true e `fetchJobDetails` definido como true. Seu teste piloto substitui a consulta, define `maxItems` como 3 e define `maxPagesPerSearch` como 1. Modos de entrada diferentes compartilham um único teto de linhas. Conserve estes campos exatos de saída: `jobId`, `jobUrl`, `title`, `companyName`, `locationRaw`, `descriptionStatus` e `scrapedAt`. Inspecione estas chaves exatas disponíveis no resumo de saída: `candidateItemsSeen`, `jobsSaved`, `duplicatesSkipped`, `stopReason`, `pagesParsed`, `pageLimitSearches`, `blockedRequests`, `failedRequests`, `detailRequests`, `detailPagesParsed`, `detailFailures`, além dos contadores separados de filtro `rowsExcludedByCompany`, `rowsExcludedByDate`, `rowsExcludedByJobType`, `rowsExcludedByWorkplace`, `rowsExcludedByExperience` e `rowsExcludedByTitle`. Use os contadores exatos e separados de exclusão que estão armazenados; cada um descreve a própria categoria. Uma execução de controle bem-sucedida com três linhas prova apenas que uma entrada positiva funciona; ela não prova a causa de uma consulta alvo vazia.
Como diagnosticar uma contagem de resultados menor
Siga estes passos para descobrir por que sua contagem de vagas está menor do que o esperado.
- Salve as configurações exatas de entrada, o horário da execução, a saída do resumo e uma amostra pequena de linhas antes de alterar qualquer coisa. Confirme se a contagem esperada vem exatamente do mesmo cargo, país, intervalo de datas, ordem de classificação e conta de usuário.
- Valide o modo de entrada. Buscas por palavra-chave, links web de busca direta e números específicos de identificação de vaga funcionam de formas diferentes. Se você misturar esses modos, eles ainda compartilham um teto total de linhas. Uma palavra de busca restante pode ampliar ou alterar a busca sem o seu conhecimento.
- Verifique filtros restritivos e unidades. Um raio de distância precisa de uma localização. Um filtro do último dia pode estreitar o escopo de candidatos em comparação com o da última semana, sem garantir menos linhas salvas, sobretudo com tetos. Compare o mesmo escopo de entrada e de fonte e inspecione a evidência real. Exclusões de cargo e de empresa podem remover candidatos. Altere uma entrada justificada de cada vez e salve a evidência antiga.
- Verifique `jobsSaved`, o teto compartilhado `maxItems`, `maxPagesPerSearch` e `stopReason`. Linhas salvas iguais ao teto ativo não provam automaticamente que um teto de linhas causou a parada, a menos que a evidência de parada realmente armazenada declare isso. Um limite de páginas pode interromper a descoberta antes de todas as páginas visíveis. Não afirme que um ou outro causou a diferença, a menos que o motivo de parada do resumo real sustente isso.
- Inspecione as contagens de candidatos, as duplicatas ignoradas e as contagens de filtro. A chave do total de itens encontrados é `candidateItemsSeen`. A chave de duplicatas ignoradas é `duplicatesSkipped`. Você pode ver 20 anúncios candidatos e salvar apenas 5 linhas únicas, porque anúncios repetidos ou filtrados são ignorados. Confira se os números do resumo fecham a conta segundo a definição exata de cada campo.
- Inspecione separadamente os erros de acesso à fonte e os resultados das páginas de detalhe. Uma busca pode encontrar cargos mesmo quando as descrições em texto completo não carregam. A chave do status do texto completo é `descriptionStatus`. Descrições de texto ausentes não significam que a contagem de anúncios de vaga era zero. Uma solicitação web com falha é um erro, não uma busca bem-sucedida com zero vagas.
- Execute um controle pequeno e conhecido como positivo, com a mesma compilação, para testar a coleta básica. Um controle conhecido como positivo e bem-sucedido sustenta apenas que o controle funcionou; a busca alvo continua incerta, a menos que o escopo real e a evidência da fonte a resolvam. Se o controle também falhar, pause novas coletas enquanto o problema da fonte ou da execução permanecer sem resolução e contate o suporte com a entrada segura e a evidência do resumo.
- Execute apenas um teste direcionado com base nos seus achados. Não aumente limites de forma contínua nem execute de novo um coletor bloqueado. Seu resultado final deve ser uma tabela de diagnóstico que aponte um próximo passo claro.
Tabela de decisão do diagnóstico
Use a evidência armazenada de parada e de página, com as descrições para o leitor, para diagnosticar a execução.
| Contagem salva versus teto | Evidência do motivo de parada | Falhas de solicitação | Atividade de filtro | Diagnóstico |
|---|---|---|---|---|
| `jobsSaved` coincide com o teto ativo | O motivo de parada armazenado informa que o teto foi atingido | 0 | 0 | A coleta parou porque atingiu o limite de linhas, com apoio da evidência real de parada. |
| `jobsSaved` está abaixo do teto ativo | O motivo de parada armazenado informa que o limite de páginas foi atingido | 0 | 0 | A coleta parou porque atingiu o limite de páginas, com apoio da evidência real de parada. |
| `jobsSaved` está abaixo do teto ativo | O motivo de parada armazenado informa esgotamento normal | 0 | Contadores de filtro ativos presentes | As regras de filtro removeram linhas candidatas correspondentes durante o esgotamento normal da entrada. |
| 0 | O motivo de parada armazenado informa problemas de solicitação ou de bloqueio | Maior que 0 | 0 | Falhas de solicitação registradas; causa não resolvida. |
Exemplos resolvidos fictícios
Quatro execuções inventadas, cada uma com a própria entrada e o próprio resumo:
- A: `maxItems` 3, `jobsSaved` 3, com um motivo de parada por teto informado de forma explícita. Diagnóstico: o teto compartilhado de salvamento foi atingido, com base na evidência explícita de parada; sem inferência sobre o total de vagas do mercado.
- B: `maxItems` 20, `maxPagesPerSearch` 1, `jobsSaved` 5, com um motivo de parada por página informado de forma explícita. Diagnóstico: o limite de páginas explica a parada da coleta dessa execução, com base na evidência explícita de parada; tente uma página a mais se a fonte permitir, e não uma paginação ilimitada.
- C: `candidateItemsSeen` 10, `duplicatesSkipped` 3, `rowsExcludedByTitle` 2, `jobsSaved` 5, com esgotamento normal da entrada informado nas descrições para o leitor. Sob esses significados fictícios e disjuntos de candidatos, 10 menos 3 menos 2 é igual a 5. Diagnóstico: a política de itens únicos e de filtro explica a contagem salva. Observe que 3 das 5 vagas salvas têm a descrição em texto completo pronta, enquanto 2 vagas salvas estão sem a descrição completa; esse estado de detalhe não altera a contagem de 5 anúncios.
- D: `jobsSaved` 0, 1 solicitação com falha, 1 solicitação bloqueada. Diagnóstico: as falhas de solicitação estão estabelecidas, mas a causa entre problemas de rede e bloqueio de acesso não está resolvida. Não há um zero de mercado comprovado.
Livro-razão de diagnóstico
Registre as métricas da execução em um livro-razão como este para comparar configurações e escolher a próxima verificação.
| Execução | Escopo ativo | Teto ativo | Estado da página | Evidência de candidato / filtro | Estado da fonte | Diagnóstico e próxima verificação |
|---|---|---|---|---|---|---|
| A | Software Engineer, US | 3 | Página 1 de 2 | 3 vistos / 0 filtrados | Saudável | Parada explícita por teto. Aumente `maxItems` se for justificado. |
| B | Software Engineer, US | 20 | Página 1 de 1 | 5 vistos / 0 filtrados | Saudável | Parada explícita por página. Aumente `maxPagesPerSearch` para 2 se for permitido. |
| C | Software Engineer, US | 100 | Página 2 de 2 | 10 vistos / 3 duplicados, 2 exclusões de título | Saudável | Esgotamento normal da entrada. Revise as configurações de exclusão de título. |
| D | Software Engineer, US | 100 | Página 0 de 2 | 0 vistos / 0 filtrados | 1 com falha, 1 bloqueado | Fonte incerta além das falhas informadas. Pause novas coletas e relate a evidência do registro. |
Fontes e leituras adicionais
Por Chronometrica · Atualizado
Voltar ao topo ↑

