"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso localizar elementos HTML com eficiência por classe CSS usando XPath?

Como posso localizar elementos HTML com eficiência por classe CSS usando XPath?

Publicado em 2024-12-21
Navegar:816

How Can I Efficiently Locate HTML Elements by CSS Class Using XPath?

Encontrando elementos por classe CSS usando XPath

Em web scraping, muitas vezes é necessário localizar elementos HTML com base em sua classe CSS. XPath, uma ferramenta poderosa para navegar em documentos XML e HTML, fornece uma maneira de conseguir isso.

Considere uma página HTML com um elemento div com uma classe chamada "Teste". A seguinte consulta XPath pode ser usada para encontrar este elemento:

//*[contains(@class, 'Test')]

Esta consulta seleciona todos os elementos que contêm a classe "Test" , independentemente de onde eles aparecem na árvore do documento.

Para otimizar o desempenho, você pode restringir a pesquisa a tipos de elementos específicos, como divs. Por exemplo, a consulta a seguir restringirá a pesquisa a divs contendo a classe "Test":

//div[contains(@class, 'Test')]

No entanto, se você tiver elementos com classes como "Testvalue" ou "newTest", a consulta acima também corresponderá a eles. Para garantir uma correspondência mais precisa, você pode usar uma string concatenada contendo um espaço antes e depois da classe "Test", conforme sugerido por @Tomalak:

//div[contains(concat(' ', @class, ' '), ' Test ')]

Esta consulta corresponderá apenas a divs que tenham a palavra "Test" como um valor de classe separado.

Para eliminar quaisquer problemas de espaço em branco, você pode também normalize os espaços usando a função normalize-space, conforme sugerido por @Terry:

//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]

Finalmente, é importante substituir o asterisco (*) nessas consultas pelo nome real do elemento que você deseja corresponder, a menos que deseje pesquisar todos os elementos no documento. Isso melhorará a eficiência da consulta.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3