Webscrapping : certains éléments non accessibles
RésoluJe me penche sur le côté web scrapping de Python et j'ai déjà réussi quelques programmes. Je me retrouve face à des situations où certaines données visibles sur la page directement (grâce à inspecter l'élément) ne sont pas accessibles via le code source (introuvable). J'aurais voulu savoir s'il existe une manière de pouvoir avoir accès à la totalité des éléments d'une page à la manière de "inspecter l'élément".
Merci de bien vouloir me proposer une solution, cordialement.
33 réponses
Des données affichées après rendu JavaScript ne figurent pas dans le code source et posent problème pour le scraping Python lorsque l’application charge dynamiquement son contenu. Des solutions consistent à utiliser un navigateur sans tête ou un moteur d’exécution JavaScript pour rendre la page, ou à analyser les appels réseau afin d’identifier des endpoints fournissant les données. Plusieurs approches recommandées incluent Selenium, Playwright ou requests-html pour simuler l’interaction et obtenir le DOM rendu, puis extraire les éléments souhaités comme des tableaux qui ne figurent pas dans le HTML statique. En cas de données fournies via des API internes, il est aussi possible d’interroger directement ces endpoints après inspection des requêtes réseau pour récupérer les contenus sans exécuter tout le rendu.
-
Contributeur'lut, c'est simple: si un contenu est sur la page alors qu'il n'est pas dans la source initiale, c'est qu'il a été ajouté dynamiquement par du JavaScript, donc soit généré soit chargé avec une requête AJAX.
Sauf qu'à ma connaissance les outils de webscrapping n'interprètent ni n'analysent le JS des pages qu'ils rencontrent, d'où le fait que certains éléments ne soient pas accessibles.
Et là, il faut soit trouver/configurer/programmer un outil suffisamment puissant, soit faire une partie du scrapping à la main.
from human import idiocy
del idiocy -
32ème Up' !
-
31ème Up' ! (Un mois, célébrons ça ! Enfin, je suis seul donc ...)
-
30ème Up' !
-
29ème Up' !
-
28ème Up' !
-
27ème Up' !
-
26ème Up' !
-
25ème Up' !
-
24ème Up' !
-
23ème Up' !
-
22ème Up' !
-
21ème Up' !
-
20ème Up' !
-
19ème Up' !
-
18ème Up' !
-
17ème Up' !
-
16ème Up' ! Si un modérateur voit ça, il va fermer le sujet mdr.
-
15ème Up' !
-
Up'
- 1
- 2