En bref : pour extraire des tableaux JavaScript via le web scraping en Python, on a rarement besoin d'un navigateur sans interface graphique. Ouvrez les DevTools, identifiez le point de terminaison JSON qui alimente la grille, relancez-le avec requests, paginez-le, et ne recourez à Playwright que lorsque l'appel réseau est signé, chiffré ou autrement verrouillé.Vous avez écrit le code évident. requests.get(url), transmettez le HTML à BeautifulSoup, extrayez les lignes du <table>. Le script s'exécute, le fichier atterrit sur le disque, et le CSV est vide. Bienvenue dans le monde du web scraping des tableaux JavaScript, où les lignes que vous voyez dans votre navigateur n'existent pas dans le document que le serveur a réellement renvoyé.
Les tableaux statiques transmettent les données dans le code HTML initial. Les tableaux dynamiques (également appelés tableaux AJAX ou rendus par JavaScript) transmettent une coquille presque vide, puis un script dans la page appelle un point de terminaison JSON et injecte des lignes dans le DOM après le chargement. Si vous n’exécutez pas ce script, vous ne voyez pas ces lignes. Lancer un navigateur complet pour résoudre ce problème est une solution lourde pour ce qui est généralement un petit problème.
Ce guide emprunte la voie la plus courte. Nous commencerons par un arbre de décision afin que vous n'ayez plus à vous demander s'il faut recourir à requests ou un moteur de navigateur, puis nous vous guiderons pour trouver le point de terminaison JSON sous-jacent dans DevTools, le reproduire en Python avec pagination et authentification, le parser en lignes propres, et l'exporter au format CSV, JSON Lines ou SQLite. Playwright est ici une véritable solution de secours pour les sites qui masquent l'appel réseau, et non l'outil par défaut. À la fin, vous disposerez d'un script que vous pourrez réexécuter au trimestre prochain sans avoir à le réécrire de zéro.




