Verwenden Sie Python zum Parsen und Pivotieren von SEO-Dateien
Veröffentlicht: 2021-08-10Eine großartige Datenquelle für jeden großen SEO-Profi sind die Crawling-Daten von Suchmaschinen, die in Protokolldateien gefunden werden. Sie können Protokolldateien analysieren, um genau zu erfahren, wie Suchmaschinen Ihre Website crawlen und verstehen. Dies gibt Ihnen Einblicke, die kein SEO-Tool von Drittanbietern kann. Wenn Sie sowohl Zeit als auch Geld sparen möchten, versuchen Sie, das Parsing, die Validierung und das Pivotieren von Protokolldateidaten für SEO mit Python zu automatisieren. In diesem Artikel führen wir Sie durch die Schritte zum Parsen und Pivotieren von SEO-Dateien mit Python.

Warum sollten Sie Python verwenden, um SEO-Dateien zu analysieren und zu Pivotieren?
Python ist eine Mehrzweck-Programmiersprache mit einer Vielzahl von Anwendungen, wenn es um Daten, Webentwicklung und Ausführung von Algorithmen geht. Die Verwendung von Python zum Parsen und Pivotieren Ihrer SEO-Daten aus Protokolldateien hilft Ihnen dabei:
- Bestätigen Sie Ihre Schlussfolgerungen, indem Sie konkrete Beweise dafür liefern, wie Suchmaschinen Ihre Website crawlen und sehen
- Priorisieren Sie Ihre Ergebnisse, indem Sie das Ausmaß eines Problems erkennen und erkennen, inwieweit es helfen kann, es zu beheben.
- Suchen Sie nach anderen Problemen, die Sie in anderen Datenquellen nicht sehen können
Obwohl die Verwendung von Logfile-Daten mehrere Vorteile bietet, halten sich viele SEO-Experten aus verschiedenen Gründen davon fern. Zum einen bedeutet das Auffinden der Daten normalerweise, ein Entwicklerteam zu durchlaufen, was viel Zeit in Anspruch nehmen kann. Außerdem können die Rohdateien groß und schwer zu verstehen sein, was das Analysieren der Daten erschwert. Schließlich könnten die Kosten für Werkzeuge, die den Prozess vereinfachen sollen, zu hoch sein.
Während dies alles berechtigte Bedenken sind, gibt es einen anderen Weg. Wenn Sie über Kenntnisse in Programmier- und Skriptsprachen verfügen , können Sie den Prozess automatisieren. Wir führen Sie durch die Schritte zur Verwendung von Python zum Analysieren von Serverprotokollen für SEO.
So verwenden Sie Python zum Parsen und Pivotieren von SEO-Dateien
Bevor Sie beginnen, müssen Sie sich überlegen, welches Format Sie zum Analysieren von Protokolldateidaten verwenden möchten. Sie haben mehrere Optionen, wie Apache, Nginx und IIS. Außerdem verwenden viele Websites jetzt CDN-Anbieter wie Cloudflare, Cloudfront und Akamai, um einem Benutzer Inhalte vom nächstgelegenen Edge-Standort bereitzustellen.
In diesem Artikel konzentrieren wir uns auf das kombinierte Protokollformat. Das liegt daran, dass das Combine Log Format die Standardeinstellung für Nginx und normalerweise die Wahl auf Apache-Servern ist.
Wenn Sie nicht wissen, mit welcher Art von Format Sie es zu tun haben, gibt es Dienste wie Builtwith und Wappalyzer, die Ihnen Auskunft über den Tech-Stack einer Website geben können.
Wenn Sie sich immer noch nicht sicher sind, öffnen Sie einfach eine der Rohdateien. Verweisen Sie auf die bereitgestellten Kommentare mit Informationen zu bestimmten Feldern.
Sie müssen auch überlegen, welche Suchmaschine Sie einbinden möchten. In diesem Artikel konzentrieren wir uns auf Google, da Google mit mehr als 92 % des Weltmarktanteils die dominierende Suchmaschine ist .

1. Dateien identifizieren und Formate bestimmen
Um eine konsequente SEO-Analyse durchzuführen, benötigen Sie für eine typische Website mindestens etwa 100.000 Anfragen und zwischen zwei und vier Wochen an Daten. Aufgrund der Größe der Dateien werden Protokolle normalerweise in einzelne Tage aufgeteilt. Sie werden höchstwahrscheinlich mehrere Dateien zur Verarbeitung erhalten.
Da Sie nicht wissen, mit wie vielen Dateien Sie es zu tun haben, es sei denn, Sie kombinieren sie vor dem Ausführen des Skripts, besteht der erste Schritt darin, eine Liste aller Dateien in unserem Ordner mit dem Glob-Modul zu erstellen. Anschließend können Sie jede Datei zurückgeben, die einem von uns angegebenen Muster entspricht. Der folgende Code entspricht jeder TXT-Datei:
Globus importieren
Dateien = glob.glob('*txt.')
Allerdings sind nicht alle Dateien TXT. Protokolldateien können in verschiedenen Dateiformaten vorliegen. Möglicherweise erkennen Sie nicht einmal die Dateierweiterung.
Es ist auch möglich, dass die Dateien, die Sie erhalten, auf mehrere Unterordner aufgeteilt werden, und wir möchten keine Zeit damit verschwenden, sie an einen einzigen Ort zu kopieren. Zum Glück unterstützt glob sowohl rekursive Suchen als auch Platzhalteroperatoren . Das heißt, Sie können eine Liste aller Dateien in einem Unterordner oder in untergeordneten Unterordnern erstellen.
files = glob.glob('**/*.*', rekursiv=True)
Als Nächstes möchten Sie ermitteln, welche Dateitypen sich in Ihrer Liste befinden. Dazu kann der MIME-Typ der jeweiligen Datei ermittelt werden. Dies sagt Ihnen, mit welcher Art von Datei Sie es zu tun haben, unabhängig von der Erweiterung.
Sie können dies tun, indem Sie python-magic, einen Wrapper um die libmagic C-Bibliothek, verwenden und eine einfache Funktion erstellen.
pip installieren python-magic
pip install libmagic
Magie importieren
def file_type(file_path):
mime = magic.from_file(file_path, mime=True)
Rückkehr Pantomime
Als Nächstes können Sie das Listenverständnis verwenden, um Ihre Dateien zu durchlaufen und die Funktion anzuwenden, wodurch ein Wörterbuch erstellt wird, in dem sowohl die Namen als auch die Typen gespeichert werden.
file_types = [file_type(file) für Datei in Dateien]
file_dict = dict(zip(files, files_types))
Verwenden Sie schließlich eine Funktion und eine while-Schleife, um eine Liste von Dateien zu extrahieren, die einen MIME-Typ von text/plain zurückgeben und alles andere ausschließen.
unkomprimiert = []
def file_identifier (Datei):
für Schlüssel, Wert in file_dict.items():
if Datei im Wert:
unkomprimiert.append(Schlüssel)
while file_identifier('text/plain'):

file_identifier('text/plain') in file_dict

2. Suchmaschinenanfragen extrahieren
Nachdem Sie die Dateien in Ihrem oder Ihren Ordnern herausgefiltert haben, besteht Ihr nächster Schritt darin, die Dateien selbst zu filtern, indem Sie nur die Anforderungen extrahieren, die Ihnen wichtig sind.
Dadurch entfällt die Notwendigkeit, die Dateien mithilfe von Befehlszeilendienstprogrammen wie GREP oder FINDSTR zu kombinieren, und Sie sparen Zeit bei der Suche nach dem richtigen Befehl.
Da Sie in diesem Fall nur Googlebot-Anfragen haben möchten, suchen Sie nach „Googlebot“, um alle relevanten User-Agents abzugleichen.
Sie können Pythons open-Funktion verwenden, um Ihre Datei zu lesen und/oder zu schreiben, und Pythons Regex-Modul RE, um die Suche durchzuführen.
3. Analysieren von Anfragen
Es gibt mehrere Möglichkeiten, Anfragen zu analysieren. Für diesen Artikel verwenden wir den integrierten CSV-Parser von Pandas und einige grundlegende Datenverarbeitungsfunktionen, um:
- Löschen Sie unnötige Spalten
- Formatieren Sie den Zeitstempel
- Erstellen Sie eine Spalte mit vollständigen URLs
- Benennen Sie die verbleibenden Spalten um und ordnen Sie sie neu an
Anstatt einen Domänennamen fest zu codieren, können Sie den Benutzer mit der Eingabefunktion auffordern und als Variable speichern.
4. Anfragen validieren
Es ist sehr einfach, Suchmaschinen-Benutzeragenten zu fälschen, wodurch die Überprüfung der Anfrage zu einem wichtigen Teil des Prozesses wird, der Sie davon abhält, falsche Schlussfolgerungen zu ziehen, indem Sie Ihre eigenen Crawls von Drittanbietern analysieren.
Dazu müssen Sie eine Bibliothek namens dnspython installieren und ein Reverse-DNS durchführen. Sie können Pandas verwenden, um doppelte IPs zu löschen und die Lookups auf dem kleineren DataFrame auszuführen. Wenden Sie dann die Ergebnisse erneut an und filtern Sie alle ungültigen Anforderungen.
Dieser Ansatz erhöht die Suchgeschwindigkeit erheblich und validiert Millionen von Anfragen in nur wenigen Minuten.

5. Schwenken Sie die Daten
Nach der Validierung haben Sie einen bereinigten und leicht verständlichen Datensatz. Sie können mit dem Pivotieren dieser Daten beginnen, um Points of Interest einfacher zu analysieren.
Sie können mit einer einfachen Aggregation beginnen, indem Sie die groupby- und agg-Funktionen von Pandas verwenden, um die Anzahl der Anforderungen für verschiedene Statuscodes zu zählen.
status_code = logs_filtered.groupby('Statuscode').agg('size')
Um den in Excel verwendeten Zähltyp zu replizieren, müssen Sie eine Aggregatfunktion von „Größe“ und nicht „Anzahl“ angeben. Wenn Sie count verwenden, rufen Sie die Funktion für alle Spalten innerhalb des DataFrame auf, und Nullwerte werden anders behandelt. Durch das Zurücksetzen des Index werden die Überschriften für beide Spalten wiederhergestellt, und die letztere Spalte kann in einen relevanteren Namen umbenannt werden.
Wenn Sie eine erweiterte Datenbearbeitung wünschen, bieten die integrierten Pivot-Tabellen von Pandas eine mit Excel vergleichbare Funktionalität, die komplexe Aggregationen mit nur einer einzigen Codezeile ermöglicht. Auf der einfachsten Ebene erfordert die Funktion einen angegebenen DataFrame und Index (oder Indizes, wenn ein Multi-Index erforderlich ist) und gibt die entsprechenden Werte zurück.
Für eine größere Spezifität können die erforderlichen Werte deklariert und Aggregationen (Summe, Mittelwert usw.) mit dem Parameter aggfunc angewendet werden. Der Spaltenparameter kann Ihnen auch dabei helfen, Werte für eine klarere Ausgabe horizontal anzuzeigen.
Bereiche einbeziehen
Für Datenpunkte wie Bytes, die viele verschiedene numerische Werte haben können, sollten Sie die Daten in ein Bucket legen. Definieren Sie dazu Ihre Intervalle innerhalb einer Liste und verwenden Sie dann die Cut-Funktion, um die Werte in Bins zu sortieren, und geben Sie np.inf an, um alles über den deklarierten Maximalwert abzufangen.
6. Exportieren
Schließlich müssen Sie Ihre Protokolldaten und Pivots exportieren. Um die Analyse zu erleichtern, sollten Sie Ihre Daten in eine Excel-Datei statt in eine CSV-Datei exportieren. XLSX-Dateien unterstützen mehrere Blätter, was bedeutet, dass Sie alle DataFrames in einer Datei kombinieren können. Sie können dies mit to Excel erreichen. Sie müssen ein ExcelWriter-Objekt angeben, da Sie derselben Arbeitsmappe mehr als ein Blatt hinzufügen. Außerdem können Sie beim Exportieren einer großen Anzahl von Pivots die Dinge vereinfachen, indem Sie DataFrames und Blattnamen in einem Wörterbuch speichern und eine for-Schleife verwenden.
Beachten Sie, dass das Zeilenlimit von Excel 1.048.576 beträgt. Da Sie jede Anfrage exportieren, kann dies bei großen Stichproben zu Problemen führen. CSV-Dateien haben keine Begrenzung, daher kann eine if-Anweisung verwendet werden, um einen CSV-Export als Fallback hinzuzufügen. Wenn die Länge der Logdatei DataFrame mehr als 1.048.576 beträgt, wird sie als CSV exportiert. Dies verhindert, dass das Skript fehlschlägt und kombiniert die Pivots dennoch in einem einzigen Export.

Parsen und Pivotieren von SEO-Dateien mit SEO Design Chicago
Obwohl die Verwendung von Python zum Parsen und Pivotieren von SEO-Dateien eine nützliche Fähigkeit ist, ist sie auch schwer zu beherrschen. Wenn Sie Hilfe bei Ihren SEO-Dateien benötigen, wenden Sie sich noch heute an die SEO-Datenexperten von SEO Design Chicago !
Häufig gestellte Fragen:
- Was ist Python?
- Wie verwende ich Python zum Parsen und Pivotieren meiner SEO-Dateien?
- Warum sollte ich Python zum Parsen und Pivotieren meiner SEO-Dateien verwenden?
- Wie extrahiere ich Suchmaschinenanfragen mit Python?
- Muss ich wissen, wie ich kodiere, um meine SEO-Dateien zu parsen und zu Pivotieren?
