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.
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