Utilisez Python pour analyser et pivoter les fichiers SEO
Publié: 2021-08-10Les données d'exploration des moteurs de recherche trouvées dans les fichiers journaux constituent une excellente source de données pour tout grand professionnel du référencement . Vous pouvez analyser les fichiers journaux pour savoir exactement comment les moteurs de recherche explorent et comprennent votre site Web. Cela vous donne un aperçu qu'aucun outil de référencement tiers ne peut. Si vous souhaitez économiser du temps et de l'argent, essayez d'automatiser l'analyse, la validation et le pivotement des données des fichiers journaux pour le référencement avec Python. Dans cet article, nous vous expliquerons les étapes à suivre pour analyser et faire pivoter les fichiers SEO avec Python.

Pourquoi devriez-vous utiliser Python pour analyser et pivoter les fichiers SEO
Python est un langage de programmation polyvalent qui a une grande variété d'applications en matière de données, de développement Web et d'exécution d'algorithmes. L'utilisation de Python pour analyser et faire pivoter vos données de référencement à partir de fichiers journaux vous aide à :
- Validez vos conclusions en vous fournissant des preuves concrètes de la façon dont les moteurs de recherche explorent et voient votre site Web
- Hiérarchisez vos conclusions en vous aidant à voir l'ampleur d'un problème et à quel point le résoudre peut aider
- Trouvez d'autres problèmes que vous ne pouvez pas voir dans d'autres sources de données
Même s'il y a plusieurs avantages à utiliser les données des fichiers journaux, de nombreux experts SEO s'en éloignent pour diverses raisons. D'une part, trouver les données signifie généralement passer par une équipe de développement, ce qui peut prendre beaucoup de temps. De plus, les fichiers bruts peuvent être volumineux et difficiles à comprendre, ce qui rend difficile l'analyse des données. Enfin, le coût des outils conçus pour simplifier le processus peut être trop élevé.
Bien que ce soient toutes des préoccupations valables, il existe un autre moyen. Si vous avez une certaine connaissance des langages de codage et de script , vous pouvez automatiser le processus. Nous vous expliquerons comment utiliser Python pour analyser les journaux de serveur pour le référencement.
Comment utiliser Python pour analyser et pivoter les fichiers SEO
Avant de commencer, vous devrez déterminer le format que vous souhaitez utiliser pour analyser les données du fichier journal. Vous avez plusieurs options, comme Apache, Nginx et IIS. De plus, de nombreux sites Web utilisent désormais des fournisseurs de CDN, tels que Cloudflare, Cloudfront et Akamai, pour diffuser du contenu à partir de l'emplacement périphérique le plus proche d'un utilisateur.
Dans cet article, nous allons nous concentrer sur le format de journal combiné. C'est parce que le Combine Log Format est la valeur par défaut pour Nginx et généralement le choix sur les serveurs Apache.
Si vous ne savez pas à quel type de format vous avez affaire, il existe des services comme Builtwith et Wappalyzer qui peuvent vous renseigner sur la pile technologique d'un site Web.
Si vous n'êtes toujours pas sûr, ouvrez simplement l'un des fichiers bruts. Recoupez les commentaires fournis avec des informations sur des champs spécifiques.
Vous devrez également réfléchir au moteur de recherche que vous souhaitez inclure. Dans cet article, nous allons nous concentrer sur Google, car Google est le moteur de recherche le plus dominant avec plus de 92% de part de marché mondial .

1. Identifier les fichiers et déterminer les formats
Afin d'effectuer une analyse SEO conséquente, vous aurez besoin d'un minimum d'environ 100 000 requêtes et entre deux et quatre semaines de données pour un site Web typique. En raison de la taille des fichiers, les journaux sont généralement divisés en jours individuels. Vous recevrez très probablement plusieurs fichiers à traiter.
Puisque vous ne savez pas combien de fichiers vous allez traiter à moins de les combiner avant d'exécuter le script, la première étape consiste à générer une liste de tous les fichiers de notre dossier à l'aide du module glob. Ensuite, vous pouvez retourner n'importe quel fichier correspondant à un modèle que nous spécifions. Le code suivant correspondra à n'importe quel fichier TXT :
importation globale
fichiers = glob.glob('*txt.')
Cependant, tous les fichiers ne sont pas TXT. Les fichiers journaux peuvent se présenter sous plusieurs types de formats de fichiers. Vous pourriez même ne pas reconnaître l'extension de fichier.
Il est également possible que les fichiers que vous recevez soient répartis sur plusieurs sous-dossiers, et nous ne voulons pas perdre de temps à les copier dans un seul emplacement. Heureusement, glob prend en charge à la fois les recherches récursives et les opérateurs génériques . Cela signifie que vous pouvez générer une liste de tous les fichiers d'un sous-dossier ou de sous-dossiers enfants.
fichiers = glob.glob('**/*.*', recursive=True)
Ensuite, vous souhaitez identifier les types de fichiers figurant dans votre liste. Pour ce faire, le type MIME du fichier spécifique peut être détecté. Cela vous indique quel type de fichier vous traitez, quelle que soit l'extension.
Vous pouvez le faire en utilisant python-magic, un wrapper autour de la bibliothèque libmagic C, et en créant une fonction simple.
pip installer python-magic
pip installer libmagic
importer de la magie
def file_type(file_path):
mime = magic.from_file(file_path, mime=True)
retour mime
Ensuite, vous pouvez utiliser la compréhension de liste pour parcourir vos fichiers et appliquer la fonction, en créant un dictionnaire pour stocker à la fois les noms et les types.
file_types = [file_type(file) pour le fichier dans les fichiers]
file_dict = dict(zip(files, files_types))
Enfin, utilisez une fonction et une boucle while pour extraire une liste de fichiers qui renvoient un type MIME text/plain et excluent tout le reste.
non compressé = []
def file_identifier(file):
pour la clé, la valeur dans file_dict.items() :
si fichier en valeur :
uncompressed.append (clé)
while file_identifier('text/plain'):

file_identifier('text/plain') dans file_dict

2. Extraire les requêtes des moteurs de recherche
Après avoir filtré les fichiers de votre ou de vos dossiers, votre prochaine étape consiste à filtrer les fichiers eux-mêmes en extrayant uniquement les demandes qui vous intéressent.
Cela élimine le besoin de combiner les fichiers à l'aide d'utilitaires de ligne de commande tels que GREP ou FINDSTR, et vous fait gagner du temps à rechercher la bonne commande.
Dans ce cas, puisque vous souhaitez uniquement des requêtes Googlebot, vous rechercherez « Googlebot » pour correspondre à tous les agents utilisateurs pertinents.
Vous pouvez utiliser la fonction open de Python pour lire et/ou écrire votre fichier et le module regex de Python, RE, pour effectuer la recherche.
3. Analyser les demandes
Il existe plusieurs façons d'analyser les demandes. Pour les besoins de cet article, nous utiliserons l' analyseur CSV intégré de Pandas et certaines fonctions de traitement de données de base afin de :
- Supprimer les colonnes inutiles
- Formater l'horodatage
- Créer une colonne avec des URL complètes
- Renommer et réorganiser les colonnes restantes
Au lieu de coder en dur un nom de domaine, vous pouvez utiliser la fonction de saisie pour inviter l'utilisateur et l'enregistrer en tant que variable.
4. Valider les demandes
Il est très simple d'usurper les agents utilisateurs des moteurs de recherche, faisant de la validation des demandes une partie vitale du processus, ce qui vous empêche de tirer des conclusions incorrectes en analysant vos propres analyses tierces.
Pour ce faire, vous devez installer une bibliothèque appelée dnspython et effectuer un DNS inversé. Vous pouvez utiliser des pandas pour supprimer les adresses IP en double et exécuter les recherches sur le plus petit DataFrame. Ensuite, réappliquez les résultats et filtrez toutes les demandes non valides.
Cette approche augmente considérablement la vitesse des recherches et valide des millions de requêtes en quelques minutes.

5. Faire pivoter les données
Après validation, vous disposez d'un ensemble de données nettoyé et facile à comprendre. Vous pouvez commencer à faire pivoter ces données pour analyser plus facilement les points d'intérêt.
Vous pouvez commencer par une simple agrégation en utilisant les fonctions groupby et agg de Pandas pour effectuer un décompte du nombre de demandes pour différents codes de statut.
status_code = logs_filtered.groupby('Status Code').agg('size')
Afin de reproduire le type de décompte que vous utilisez dans Excel, vous devez spécifier une fonction d'agrégat de « taille » et non de « nombre ». Si vous utilisez count, vous invoquerez la fonction sur toutes les colonnes du DataFrame et les valeurs NULL sont gérées différemment. La réinitialisation de l'index restaurera les en-têtes des deux colonnes, et cette dernière colonne peut être renommée en quelque chose de plus pertinent.
Si vous souhaitez une manipulation de données plus avancée, les tableaux croisés dynamiques intégrés de Pandas offrent des fonctionnalités comparables à celles d'Excel, ce qui permet des agrégations complexes avec une seule ligne de code. À son niveau le plus élémentaire, la fonction nécessite un DataFrame et un index spécifiés (ou des index si un multi-index est requis) et renvoie les valeurs correspondantes.
Pour plus de spécificité, les valeurs requises peuvent être déclarées et des agrégations (somme, moyenne, etc.) peuvent être appliquées à l'aide du paramètre aggfunc. Le paramètre colonnes peut également vous aider à afficher les valeurs horizontalement pour une sortie plus claire.
Incorporer des gammes
Pour les points de données tels que les octets, qui peuvent avoir de nombreuses valeurs numériques différentes, vous souhaiterez regrouper les données. Pour ce faire, définissez vos intervalles dans une liste, puis utilisez la fonction cut pour trier les valeurs dans des bacs, en spécifiant np.inf pour capturer tout ce qui concerne la valeur maximale déclarée.
6. Exporter
Enfin, vous devez exporter vos données de journal et vos pivots. Afin de faciliter l'analyse, vous souhaiterez exporter vos données vers un fichier Excel plutôt que CSV. Les fichiers XLSX prennent en charge plusieurs feuilles, ce qui signifie que vous pouvez combiner tous les DataFrames dans un seul fichier. Vous pouvez y parvenir en utilisant exceller. Vous devrez spécifier un objet ExcelWriter car vous ajoutez plusieurs feuilles au même classeur. De plus, lorsque vous exportez un grand nombre de pivots, cela permet de simplifier les choses en stockant les DataFrames et les noms de feuilles dans un dictionnaire et en utilisant une boucle for.
Gardez à l'esprit que la limite de lignes d'Excel est de 1 048 576. Étant donné que vous exportez chaque demande, cela peut entraîner des problèmes si vous avez des échantillons volumineux. Les fichiers CSV n'ont pas de limite, donc une instruction if peut être utilisée pour ajouter une exportation CSV comme solution de secours. Ensuite, si la longueur du fichier journal DataFrame est supérieure à 1 048 576, il sera exporté au format CSV. Cela empêche le script d'échouer et combine toujours les pivots en une seule exportation.

Analyser et faire pivoter des fichiers SEO avec SEO Design Chicago
Bien que l'utilisation de Python pour analyser et faire pivoter les fichiers SEO soit une compétence utile, elle est également difficile à maîtriser. Si vous avez besoin d'aide avec vos fichiers de référencement, contactez dès aujourd'hui les experts en données de référencement de SEO Design Chicago pour obtenir de l'aide !
FAQ :
- Qu'est-ce que Python ?
- Comment utiliser Python pour analyser et faire pivoter mes fichiers SEO ?
- Pourquoi devrais-je utiliser Python pour analyser et faire pivoter mes fichiers SEO ?
- Comment extraire les requêtes des moteurs de recherche à l'aide de Python ?
- Ai-je besoin de savoir comment coder pour analyser et faire pivoter mes fichiers SEO ?
