J'ai un script Phantom JS, qui surveille certaines pages externes. Fondamentalement, il obtient tout état de ces pages comme celui-ci (code tapuscrit):Phantom js sélectionnant un élément à partir d'un site externe
const status: string = await page.evaluate(function() {
return document.getElementsByClassName("status-containing-element")[0].innerHTML;
});
Dans certains cas, cet élément ne peut être affiché sur le site, alors supposons mon script que le site est actuellement indisponible. Le problème est, si statut de l'élément contenant nom de classe sera changé, mon script pensera toujours, ce site est indisponible jusqu'à ce que je remarque, ce nom de classe est changé. Comme une solution, j'ai essayé de prendre une capture d'écran de la page avec fantôme et en vérifiant certaines parties pour déterminer l'état de la page, mais cela me semble être un surcoût.
Y a-t-il un meilleur moyen/moyen d'éviter de tels problèmes, par ex. détecter automatiquement le changement de structure du site ou smth comme ça?
Vous ne pouvez pas faire une requête HTTP pour ce site externe et vérifier l'état HTTP? Ou peut-être qu'ils ont une API ouverte qui le rend plus facile. –
Merci pour votre commentaire. Malheureusement, ces sites n'ont pas d'API publique et je ne peux pas simplement faire une requête http pour cela, car il peut y avoir beaucoup de statuts différents qui sont rendus avec js. – Max
Ah, compris. Je pense qu'il n'y a pas de moyen magique pour détecter les changements de structure HTML, c'est pourquoi nous avons des API, pour fournir un moyen fiable d'obtenir des données. Bien sûr, vous pouvez vérifier si un élément conteneur existe toujours. –