Revue Semalt: Web Scraping pour le plaisir et le profit

Vous pouvez gratter le site sans avoir besoin d'une API. Bien que les propriétaires de sites soient agressifs pour arrêter de gratter, ils se soucient moins des API et mettent davantage l'accent sur les sites Web. Le fait que de nombreux sites ne protègent pas adéquatement contre l'accès automatique crée une marge de manœuvre pour les grattoirs. Quelques solutions simples vous aideront à récolter les données dont vous avez besoin.

Premiers pas avec le grattage

Le scraping nécessite de comprendre la structure des données dont vous avez besoin et leur accessibilité. Cela commence par récupérer vos données. Recherchez l'URL qui renvoie les informations dont vous avez besoin. Parcourez le site Web et vérifiez comment les URL changent lorsque vous parcourez les différentes sections.

Alternativement, recherchez plusieurs termes sur le site et vérifiez comment les URL changent en fonction de votre terme de recherche. Vous devriez voir un paramètre GET comme q = qui change chaque fois que vous recherchez un nouveau terme. Conservez les paramètres GET nécessaires au chargement de vos données et supprimez les autres.

Comment gérer la pagination

La pagination vous empêche d'accéder à toutes les données dont vous avez besoin à la fois. Lorsque vous cliquez sur la page 2, un paramètre offset = est ajouté à l'URL. Il s'agit du nombre d'éléments sur une page ou du numéro de page. Augmentez ce nombre sur chaque page de vos données.

Pour les sites qui utilisent AJAX, ouvrez l'onglet réseau dans Firebug ou Inspector. Vérifiez les demandes XHR, identifiez et concentrez-vous sur celles qui récupèrent vos données.

Obtenir des données à partir du balisage de page

Ceci est réalisé en utilisant des crochets CSS. Cliquez avec le bouton droit sur une section particulière de vos données. Tirez le Firebug ou l'inspecteur et zoomez sur l'arborescence DOM pour obtenir la <div> la plus à l'extérieur qui enveloppe un seul élément. Une fois que vous avez le bon nœud dans l'arborescence DOM, affichez la source de la page pour vous assurer que vos éléments sont accessibles en HTML brut.

Pour réussir à gratter le site, vous avez besoin d'une bibliothèque d'analyse HTML qui lit en HTML et la transforme en un objet que vous pouvez parcourir jusqu'à ce que vous obteniez ce dont vous avez besoin. Si votre bibliothèque HTTP nécessite que vous définissiez des cookies ou des en-têtes, parcourez le site sur votre navigateur Web et obtenez les en-têtes envoyés par votre navigateur. Mettez-les dans un dictionnaire et envoyez votre demande.

Lorsque vous avez besoin d'une connexion pour gratter

Si vous devez créer un compte et vous connecter pour obtenir les données que vous souhaitez, vous devez disposer d'une bonne bibliothèque HTTP pour gérer les connexions. La connexion à Scraper vous expose à des sites tiers.

Si la limite de débit de votre service Web dépend de l'adresse IP, définissez un code qui renvoie le service Web à un Javascript côté client. Transférez ensuite les résultats vers votre serveur à partir de chaque client. Les résultats sembleront provenir de tant d'endroits et aucun ne dépassera leur limite de taux.

Balisage mal formé

Certaines balises peuvent être difficiles à valider. Dans de tels cas, fouillez dans votre analyseur HTML pour les paramètres de tolérance aux erreurs. Vous pouvez également traiter l'intégralité du document HTML comme une longue chaîne et procéder au fractionnement des chaînes.

Bien que vous puissiez gratter toutes sortes de données sur le site, certains sites utilisent des logiciels pour arrêter le grattage et d'autres interdisent le grattage Web . Ces sites peuvent vous poursuivre en justice et même vous faire emprisonner pour avoir collecté leurs données. Soyez donc intelligent dans tous vos sites Web et faites-le en toute sécurité.