L'expert Semalt explique comment supprimer un site Web AJAX à l'aide de Python

Le scraping Web est une méthode qui utilise un logiciel pour extraire des données d'une page Web. Il existe de nombreux outils à utiliser pour gratter le Web avec python, certains d'entre eux étant; Sky, Scrapy, Requests et Beautiful Soup. Cependant, la plupart de ces outils sont limités par le fait qu'ils ne récupèrent que du HTML statique provenant du serveur et non la partie dynamique rendue par JavaScript.

Cependant, il existe certaines techniques permettant de résoudre ce problème:

1. Navigateurs automatisés

Vous pouvez utiliser des navigateurs automatisés tels que Selenium ou Splash, qui sont des navigateurs complets qui fonctionnent sans tête. Cependant, leur configuration peut être assez complexe, et nous nous concentrerons donc sur la deuxième option ci-dessous.

2. Intercepter les appels AJAX

Cela implique d'essayer d'intercepter les appels AJAX à partir de la page et d'essayer de les relire ou de les reproduire.

Dans cet article, nous verrons comment intercepter les appels AJAX et les rejouer en utilisant la bibliothèque de demandes et le navigateur Google Chrome. Bien que les frameworks comme Scrapy puissent vous fournir une solution plus efficace en matière de scraping, ils ne sont pas requis dans tous les cas. Les appels AJAX sont principalement effectués sur une API qui retournera un objet JSON que la bibliothèque Requests peut facilement gérer.

La première chose que vous devez savoir est qu'essayer de rejouer un appel AJAX revient à utiliser une API non documentée. Par conséquent, vous devez regarder tous les appels des pages. Vous pouvez aller sur le site, jouer avec lui un moment et voir comment certaines informations sont rendues. Une fois que vous avez fini de jouer, revenez et commencez à gratter.

Avant d'entrer dans les détails, voyons d'abord comment fonctionne la page. Si vous visitez une page de magasins par état, sélectionnez n'importe quel état et la page affichera des informations sur le magasin. Chaque fois que vous sélectionnez un état, le site Web affiche de nouveaux magasins pour remplacer les anciens. Ceci est réalisé en utilisant et en appelant AJAX à un serveur demandant les informations. Notre intention est maintenant d'attraper cet appel et de le rejouer.

Pour ce faire, il vous suffit d'ouvrir le navigateur Chrome DevTools consolé et d'aller dans la sous-section XHR. XHR est une interface qui exécute les requêtes HTTP et HTTPS. Ainsi, les requêtes AJAX seront affichées ici. Lorsque vous double-cliquez sur l'appel AJAX, vous trouverez de nombreuses informations sur les magasins. Vous pouvez également prévisualiser les demandes.

Vous noterez que beaucoup de données sont envoyées au serveur. Cependant, ne vous inquiétez pas car tout n'est pas nécessaire. Pour voir les données dont vous avez besoin, vous pouvez ouvrir une console et effectuer diverses demandes de publication sur le site Web. Maintenant que vous savez comment fonctionne la page et avez déchiffré l'appel AJAX, vous pouvez écrire votre grattoir.

Vous vous demandez peut-être, 'pourquoi ne pas utiliser un navigateur automatisé?' La solution est simple; essayez toujours de rejouer les appels AJAX avant de vous lancer dans quelque chose de beaucoup plus lourd et compliqué comme un navigateur automatisé. C'est plus simple et plus léger.

png

mass gmail