🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
O que é XPath? Sintaxe de Caminho, Eixos e Exemplos de Extração

O que é XPath?

O Scrapeless Scraping Browser fornece conteúdo DOM de página pública renderizado que fluxos de trabalho de extração podem navegar com expressões XPath.

Resumo Rápido

  • XPath é uma linguagem de expressão para selecionar valores e nós em dados estruturados em árvore. Sua sintaxe de caminho pode navegar filhos, descendentes, pais, ancestrais, irmãos e atributos.
  • O XPath funciona a partir de um nó de contexto. Caminhos absolutos começam na raiz do documento; caminhos relativos começam a partir do contexto atual.
  • Predicados filtram nós candidatos. Valores de atributo, posições, testes de texto e funções podem restringir um caminho.
  • XPath é útil quando a seleção depende de relacionamentos. A travessia de pais ou ancestrais e condições dependentes de texto são razões comuns para escolhê-lo.

XPath, abreviação de Linguagem de Caminho XML, é uma linguagem de expressão usada para endereçar nós e valores em uma árvore. Embora seu nome venha do XML, APIs de navegador e automação podem avaliar XPath contra documentos HTML também.

O W3C XPath 3.1 Recommendation define XPath como uma linguagem de expressão cujas expressões de caminho fornecem endereçamento hierárquico sobre um modelo de dados.

Como o XPath Funciona?

XPath avalia uma expressão contra um contexto e retorna nós correspondentes ou valores calculados.

Um caminho é feito de passos. Cada passo escolhe um eixo, aplica um teste de nó e pode adicionar predicados. A expressão //article[@data-id] seleciona descendentes de artigo que tenham um atributo data-id. A expressão .//h2 busca descendentes H2 do nó de contexto atual.

Quais são as Principais Partes de uma Expressão XPath?

XPath combina passos de localização, eixos, testes de nós, predicados e funções.

SintaxePropósitoExemplo
/Inicia um caminho absoluto ou separa passos filhos/html/body
//Seleciona descendentes a partir do ponto atual//main//a
.Refere-se ao contexto atual.//span
..Move para o pai//span/..
@Seleciona ou testa um atributo//a/@href
[ ]Filtra nós candidatos//li[@data-id]

Quais são os Eixos XPath?

Os eixos XPath descrevem o relacionamento entre o nó de contexto e os nós candidatos.

  • Filho e descendente. Move-se um nível para baixo ou procura descendentes mais profundos.
  • Pai e ancestral. Move-se para cima a partir de um nó conhecido até um elemento contêiner.
  • Irmão subsequente e irmão precedente. Seleciona nós ao lado do nó de contexto.
  • Atributo. Seleciona atributos em vez de nós de elemento.
  • Auto. Testa ou retém o nó de contexto atual.

Como o XPath é Usado na Coleta de Dados Web?

Coletor de dados web usa XPath para localizar elementos, atributos e texto com base na estrutura do documento e relacionamentos.

Seleção Dependente de Texto

Encontre um rótulo ou cabeçalho por texto, em seguida, selecione um valor próximo.

Percurso de Antepassados

Comece em um nó filho estável e vá para o contêiner de registro que o possui.

Relacionamentos de Irmãos

Selecione um valor que siga um rótulo conhecido quando a página não tiver atributos úteis.

Fontes XML

Navegue em feeds ou outros documentos XML com namespaces e estruturas específicas do documento.

O navegador Document.evaluate() o método avalia uma expressão XPath contra um nó de contexto e retorna um XPathResult.

O Comparação MDN XPath e CSS mostra onde os eixos correspondem a combinadores CSS ou novas pseudo-classes e onde XPath mantém capacidades distintas.

Como você escreve XPath mantenível?

XPath mantível usa atributos estáveis e relacionamentos locais em vez de copiar um caminho absoluto a partir da raiz do documento.

  1. Escolha um nó de contexto estável, como um contêiner de registro.
  2. Use atributos ou rótulos específicos que expressem significado.
  3. Limite buscas amplas de descendentes quando um contexto menor estiver disponível.
  4. Evite caminhos posicionais longos vinculados ao layout atual.
  5. Teste a expressão em várias variantes da página e afirme contagens de resultados.

Como uma expressão XPath é avaliada?

XPath avalia uma expressão contra um nó de contexto. Um passo de localização seleciona nós ao longo de um eixo, aplica um teste de nó e então filtra a sequência resultante com predicados. O contexto importa: uma expressão que começa com // busca descendentes de uma raiz mais ampla, enquanto uma expressão relativa que começa com . permanece ancorada ao contêiner de registro atual.

Este modelo de avaliação explica por que a mesma expressão pode retornar resultados diferentes em um console de navegador e dentro de um loop de parser. Se o loop já contém um cartão de produto, um caminho relativo deve começar daquele cartão. Uma busca de descendente não escopo pode escapar do registro pretendido e retornar repetidamente o primeiro valor correspondente na página.

A ordem dos nós e o tipo de resultado também importam. Uma expressão pode produzir uma sequência de nós, string, número ou booleano dependendo do mecanismo e da API chamada. Leia o contrato da biblioteca para que o código de extração não converta acidentalmente o nó errado em string ou ignore vários resultados.

Quais eixos XPath importam para extração na web?

Os eixos de filho e descendente cobrem a maior parte da navegação para baixo. Atributo seleciona valores anexados a um elemento. Pai e ancestral movem-se para cima quando um campo deve estar relacionado a uma seção rotulada ou registro que a engloba. Irmão subsequente e irmão precedente conectam elementos próximos que compartilham um pai.

Eixos são úteis porque descrevem relacionamentos em vez de posições absolutas. Um preço pode ser selecionado do mesmo cartão que um cabeçalho de produto, mesmo quando cartões não relacionados usam classes semelhantes. Um valor de tabela pode ser associado a uma célula de cabeçalho quando nenhuma classe de coluna dedicada existe.

Eixos amplos também podem criar correspondências ocultas. Uma busca ancestral que sobe longe demais pode alcançar o corpo da página, e uma busca seguinte pode cruzar para outro registro. Limite o eixo com um teste de nó específico e predicado, depois verifique quantos nós ele retorna em cada template representativo.

Como funcionam os predicados XPath?

Predicados filtram os nós selecionados por um passo. Podem testar atributos, elementos filhos, texto normalizado, posição ou combinações de condições. Como os predicados operam em um contexto, a posição é relativa à sequência atual de nós em vez de um índice universal na marcação original.

A igualdade de atributos é geralmente mais clara do que a posição quando a página expõe um identificador significativo. Condições de texto são úteis quando um rótulo define o relacionamento, mas a linguagem visível pode mudar entre locais ou revisões editoriais. Normalize espaços em branco quando apropriado e evite uma correspondência de texto parcial que possa aceitar vários rótulos não relacionados.

Mantenha os predicados pequenos o suficiente para explicar. Se uma expressão combina muitos rótulos alternativos, ancestralidade profunda e posições numéricas, separa a classificação de página da seleção de campo. Um XPath curto para cada template conhecido é geralmente mais fácil de testar do que uma expressão destinada a sobreviver a cada página possível.

O que são namespaces em XPath?

Namespaces distinguem elementos que compartilham um nome local, mas pertencem a vocabulários diferentes. Eles são especialmente relevantes para XML, SVG e documentos mistos. Um prefixo de namespace em uma expressão XPath deve ser associado ao URI de namespace correto através da API usada pelo navegador ou parser.

Documentos HTML analisados como HTML frequentemente têm comportamento de namespace diferente de documentos XHTML ou XML. Uma expressão que funciona em um DOM HTML pode falhar quando a mesma marcação visual é processada através de um parser XML. Confirme o tipo de conteúdo da resposta e o modo de análise antes de ajustar o caminho.

Se SVG incorporado ou outro namespace fizer parte do alvo, teste-o diretamente no mecanismo escolhido. Algumas APIs de conveniência fornecem ajudantes de resolução de namespace, enquanto outras requerem mapeamentos explícitos. Não remova verificações de namespace apenas para fazer uma expressão coincidir; isso pode selecionar um elemento indesejado com o mesmo nome local.

Como você depura e mantém XPath?

Depure um passo de cada vez. Comece com um contêiner estável, inspecione os nós retornados e adicione o próximo eixo ou predicado apenas após o resultado atual estar correto. Teste caminhos relativos a partir do mesmo nó de contexto que o código de produção usará.

Armazene documentos representativos para páginas de lista, detalhes, estados vazios, variantes localizadas e módulos opcionais. Asserções devem cobrir valores, contagens de nós e limites de registro. Um caminho que ainda retorna uma string pode estar errado se agora apontar para um breadcrumb ou duplicata oculta.

Versione expressões com o esquema de extração e classificador de páginas. Quando uma fonte introduz um novo template, identifique-o explicitamente e meça sua presença. Isso mantém a manutenção do XPath rastreável e evita adicionar silenciosamente outro ramo a uma expressão cujo comportamento já é difícil de entender.

Conclusão

XPath é uma linguagem de consulta em árvore com forte suporte para navegação, filtragem e valores calculados. Ela se adapta a tarefas de extração onde o âncora útil e o nó desejado estão relacionados por condições de pai, antecessor, irmão, atributo ou texto.

Pronto para construir seu fluxo de trabalho de dados da web?

Use Scrapeless para recuperar conteúdo web público, depois aplique o padrão de descoberta e extração que se adequa ao seu conjunto de dados.

Começar grátis →

FAQ

XPath funciona com HTML?

Sim. APIs de navegador e automação podem avaliar XPath em documentos HTML analisados, sujeito à versão e recursos do XPath que implementam.

Qual é a diferença entre / e // em XPath?

Uma barra simples separa etapas de filhos diretos, enquanto uma barra dupla busca descendentes a partir do ponto atual.

XPath pode selecionar atributos?

Sim. O eixo de atributo usa o prefixo @, como em //a/@href para atributos href em elementos de link.

Por que buscas amplas // devem ser limitadas?

Um contexto menor reduz a travessia desnecessária e torna o limite de registro pretendido da expressão mais claro.

Referências