Gerapy ist eine Full-Stack-Lösung für den Einsatz von Scrapy. Wenn man sich die Commit-Historie anschaut, hat es einige Abhängigkeitsstöße erhalten, wurde aber seit 2022 nicht mehr wirklich aktualisiert. Erste Gerapy gestartet kann ein schwieriger Prozess oft mit Versuch und Irrtum gefüllt sein.
Dieser Leitfaden soll Ihnen die Arbeit mit Gerapy erleichtern. Am Ende dieses Leitfadens werden Sie in der Lage sein, die folgenden Fragen zu beantworten.
- Warum funktioniert Gerapy nicht mit meiner Standard-Python-Installation?
- Wie kann ich Python und pip für Gerapy konfigurieren?
- Wie kann ich ein Administratorkonto erstellen?
- Wie schreibe ich meinen ersten Scraper?
- Wie behebe ich Probleme mit meinem Scraper?
- Wie kann ich meinen Scraper testen und einsetzen?
Einführung in Gerapy
Verschaffen wir uns ein besseres Verständnis dafür, was Gerapy eigentlich ist und was es einzigartig macht.
Was ist Gerapy?
Gerapy stellt uns ein Django-Management-Dashboard und die Scrapyd-API zur Verfügung. Diese Dienste bieten eine einfache, aber leistungsstarke Schnittstelle für die Verwaltung Ihres Stacks. Zum jetzigen Zeitpunkt handelt es sich um ein Legacy-Programm, aber es verbessert den Arbeitsablauf und beschleunigt die Bereitstellung. Gerapy macht Web-Scraping für DevOps und verwaltungsorientierte Teams leichter zugänglich.
- GUI-Dashboard zur Erstellung und Überwachung von Scrapern.
- Setzen Sie einen Scraper mit nur einem Mausklick ein.
- Sie erhalten in Echtzeit Einblick in Protokolle und Fehler, sobald sie auftreten.
Was macht Gerapy so einzigartig?
Mit Gerapy erhalten Sie eine zentrale Anlaufstelle für das Scraper-Management. Die Inbetriebnahme von Gerapy ist aufgrund des Legacy-Codes und der Abhängigkeiten ein langwieriger Prozess. Sobald Sie es jedoch zum Laufen gebracht haben, steht Ihnen ein komplettes Toolset zur Verfügung, das auf die Verwaltung von Scrapers in großem Umfang zugeschnitten ist.
- Erstellen Sie Ihre Scraper innerhalb des Browsers.
- Stellen Sie sie auf Scrapyd bereit, ohne die Kommandozeile zu berühren.
- Zentralisierte Verwaltung für alle Ihre Crawler und Scraper.
- Auf Django basierendes Frontend für die Verwaltung von Spinnen.
- Backend auf Basis von Scrapyd für einfache Erstellung und Bereitstellung.
- Integrierter Planer für die Automatisierung von Aufgaben.
Wie man das Web mit Gerapy scrapen kann
Der Einrichtungsprozess von Gerapy ist mühsam. Sie müssen sich um technische Schulden kümmern und die Software warten. Nach vielen Versuchen und Irrtümern fanden wir heraus, dass Gerapy nicht einmal mit moderneren Versionen von Python kompatibel ist. Wir begannen mit einer modernen Installation von Python 3.13. Sie war zu modern für die Abhängigkeiten von Gerapy. Wir versuchten es mit 3.12 – immer noch kein Glück – nur mehr Probleme mit den Abhängigkeiten.
Es stellte sich heraus, dass wir Python 3.10 benötigten. Darüber hinaus mussten wir einige Änderungen am eigentlichen Code von Gerapy vornehmen, um eine veraltete Klasse zu korrigieren – und dann mussten wir fast alle Abhängigkeiten in Gerapy manuell herunterstufen. Python hat sich in den letzten drei Jahren stark verändert und die Entwicklung von Gerapy hat damit nicht Schritt gehalten. Wir müssen die idealen Bedingungen von Gerapy von vor drei Jahren wiederherstellen.
Projekt einrichten
Python 3.10
Zu Beginn müssen wir Python 3.10 installieren. Diese Version ist nicht ausgestorben, aber sie ist nicht mehr allgemein verfügbar. Auf nativen Ubuntu und Windows WSL mit Ubuntu kann sie mit apt installiert werden.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev
Sie können dann mit der Option --version
überprüfen, ob das Programm installiert ist.
python3.10 --version
Wenn alles gut geht, sollten Sie eine ähnliche Ausgabe wie die folgende sehen.
Python 3.10.17
Erstellen eines Projektordners
Erstellen Sie zunächst einen neuen Ordner.
mkdir gerapy-environment
Als nächstes müssen wir in unseren neuen Projektordner wechseln
und eine virtuelle Umgebung einrichten.
cd gerapy-environment
python3.10 -m venv venv
Aktivieren Sie die Umwelt.
source venv/bin/activate
Sobald Ihre Umgebung aktiv ist, können Sie die aktive Version von Python überprüfen.
python --version
Wie Sie sehen können, ist Python
nun standardmäßig in unserer 3.10-Installation in der virtuellen Umgebung installiert.
Python 3.10.17
Installieren von Abhängigkeiten
Der folgende Befehl installiert Gerapy und die erforderlichen Abhängigkeitsversionen. Wie Sie sehen können, müssen wir viele Legacy-Pakete manuell mit pip==
ansteuern.
pip install setuptools==80.8.0
pip install scrapy==2.7.1 gerapy==0.9.13 scrapy-splash==0.8.0 scrapy-redis==0.7.3 scrapyd==1.2.0 scrapyd-client==1.2.0 pyopenssl==23.2.0 cryptography==41.0.7 twisted==21.2.0
Wir werden nun ein echtes Gerapy-Projekt mit dem init-Befehl
erstellen.
gerapy init
Als Nächstes wechseln
wir in unseren gerapy-Ordner
und führen migrate
aus, um unsere Datenbank zu erstellen.
cd gerapy
gerapy migrate
Nun ist es an der Zeit, ein Administratorkonto zu erstellen. Mit diesem Befehl erhalten Sie standardmäßig Administratorrechte.
gerapy initadmin
Schließlich starten wir den Gerapy-Server.
gerapy runserver
Sie sollten eine Ausgabe wie diese sehen.
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
INFO - 2025-05-24 13:49:16,241 - process: 1726 - scheduler.py - gerapy.server.core.scheduler - 105 - scheduler - successfully synced task with jobs with force
May 24, 2025 - 13:49:16
Django version 2.2.28, using settings 'gerapy.server.server.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Verwendung des Dashboards
Wenn Sie http://127.0.0.1:8000/ besuchen, werden Sie aufgefordert, sich anzumelden. Ihr Standard-Kontoname ist admin
und Ihr Passwort auch. Nach der Anmeldung werden Sie zum Dashboard von Gerapy weitergeleitet.
Klicken Sie auf die Registerkarte “Projekte” und erstellen Sie ein neues Projekt. Wir nennen dieses Projekt ” Zitate"
.
Erreichen der Zielsite
Jetzt werden wir eine neue Spinne erstellen. Klicken Sie in Ihrem neuen Projekt auf die Schaltfläche “Spider hinzufügen”. Fügen Sie im Abschnitt “Start Urls” https://quotes.toscrape.com
hinzu .
Geben Sie unter “Domains” quotes.toscrape.com
ein.
Logik der Extraktion
Als nächstes fügen wir unsere Extraktionslogik hinzu. Die folgende parse()
-Funktion verwendet CSS-Selektoren, um Zitate aus der Seite zu extrahieren. Mehr über Selektoren können Sie hier erfahren.
Blättern Sie nach unten zum Abschnitt “Innerer Code” und fügen Sie Ihre Parsing-Funktion hinzu.
def parse(self, response):
quotes = response.css('div.quote')
print(f"Found {len(quotes)} quotes")
for quote in quotes:
text = quote.css('span.text::text').get()
author = quote.css('small.author::text').get()
print(f"Text: {text}, Author: {author}")
yield {
'text': text,
'author': author,
}
Klicken Sie nun auf die Schaltfläche “Speichern” in der unteren rechten Ecke des Bildschirms. Wenn Sie den Spider jetzt ausführen, werden Sie auf einen kritischen Fehler stoßen. Gerapy versucht, BaseItem
aus Scrapy zu verwenden. BaseItem
wurde jedoch vor einigen Jahren aus Scrapy entfernt.
Behebung des BaseItem-Fehlers
Um diesen Fehler zu beheben, müssen wir den internen Code von Scrapy bearbeiten. Sie können dies über die Kommandozeile tun. Allerdings ist es viel einfacher von einem GUI-Texteditor mit Suchfunktionen.
cd
in die Quelldateien für Ihre virtuelle Umgebung.
cd venv/lib/python3.10/site-packages/gerapy/server/core
Um den Ordner in VSCode zu öffnen, können Sie den folgenden Befehl verwenden.
code .
Öffnen Sie die Datei parser.py
, und Sie werden den Übeltäter finden.
Wir müssen diese Zeile durch die folgende ersetzen.
from scrapy import Item
Nachdem wir nun den BaseItem-Import
entfernt haben, müssen wir alle Instanzen von BaseItem
mit Item
entfernen. Die einzige Instanz von BaseItem befindet sich in der Funktion run_callback()
. Wenn Sie mit dem Speichern der Änderungen fertig sind, schließen Sie den Editor.
Wenn Sie Ihren Spider ausführen, erhalten Sie nun einen neuen Fehler.
Behebung der Verwerfung von REQUEST_FINGERPRINTER_IMPLEMENTATION
Es ist nicht offensichtlich, aber Gerapy tatsächlich injiziert unsere Einstellungen direkt in unsere Spinne. cd
aus unserem aktuellen Ordner und dann in den Ordner Projekte
.
cd
cd gerapy-environment/gerapy/projects/quotes
Öffnen Sie erneut Ihren Texteditor.
code .
Öffnen Sie nun Ihren Spider. Er sollte den Titel quotes.py
tragen und sich im Ordner spiders
befinden. Sie sollten Ihre parse()
-Funktion innerhalb der Spider-Klasse sehen. Am Ende der Datei sollten Sie ein Array namens custom_settings
sehen. Unsere Einstellungen wurden buchstäblich von Gerapy in die Spinne injiziert.
Wir müssen eine neue Einstellung hinzufügen. Sie müssen 2.7
verwenden. 2.6
wird weiterhin den Fehler auslösen. Wir haben dies nach zahlreichen Versuchen und Fehlern entdeckt.
"REQUEST_FINGERPRINTER_IMPLEMENTATION": "2.7",
Wenn Sie nun den Spider über die Abspieltaste von Gerapy ausführen, werden alle Fehler behoben. Wie Sie unten sehen können, wird statt einer Fehlermeldung nur eine “Follow Request” angezeigt.
Alles zusammenfügen
Bau des Abstreifers
Wenn Sie zu Ihrer Registerkarte “Projekte” in Gerapy zurückkehren, sehen Sie ein “X” in der Spalte “Gebaut” für das Projekt. Das bedeutet, dass unser Scraper nicht in eine ausführbare Datei für den Einsatz erstellt wurde.
Klicken Sie auf die Schaltfläche “Bereitstellen”. Klicken Sie nun auf “Erstellen”.
Den Scheduler verwenden
Um Ihren Scraper zu einem bestimmten Zeitpunkt oder in einem bestimmten Intervall laufen zu lassen, klicken Sie auf “Aufgaben” und erstellen Sie eine neue Aufgabe. Wählen Sie dann die gewünschten Einstellungen für den Zeitplan.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche “Erstellen”.
Beschränkungen beim Scraping mit Gerapy
Abhängigkeiten
Sein Legacy-Code bringt viele Einschränkungen mit sich, die wir in diesem Artikel direkt ansprechen. Nur um Gerapy zum Laufen zu bringen, mussten wir den internen Quellcode bearbeiten. Wenn Sie sich nicht wohl dabei fühlen, die Interna des Systems anzufassen, ist Gerapy nichts für Sie. Erinnern Sie sich an den BaseItem-Fehler
?
Da sich die Abhängigkeiten von Gerapy ständig weiterentwickeln, bleibt Gerapy in der Zeit stehen. Um es weiterhin zu verwenden, müssen Sie Ihre Installation selbst pflegen. Dies führt zu technischen Schulden in Form von Wartung und einem sehr realen Prozess von Versuch und Irrtum.
Erinnern Sie sich an diesen Ausschnitt unten. Jede dieser Versionsnummern wurde in einem akribischen Prozess von Versuch und Irrtum ermittelt. Wenn Abhängigkeiten nicht funktionieren, müssen Sie immer wieder verschiedene Versionsnummern ausprobieren, bis Sie eine funktionierende Version finden. Allein in diesem Lernprogramm mussten wir durch Ausprobieren funktionierende Versionen von 10 Abhängigkeiten finden. Mit der Zeit wird dies nur noch schlimmer werden.
pip install setuptools==80.8.0
pip install scrapy==2.7.1 gerapy==0.9.13 scrapy-splash==0.8.0 scrapy-redis==0.7.3 scrapyd==1.2.0 scrapyd-client==1.2.0 pyopenssl==23.2.0 cryptography==41.0.7 twisted==21.2.0
Beschränkungen des Betriebssystems
Als wir dieses Tutorial anfänglich ausprobierten, versuchten wir es mit dem nativen Windows. Auf diese Weise entdeckten wir die anfänglichen Einschränkungen aufgrund der Python-Versionen. Die aktuellen stabilen Python-Versionen sind auf 3.9, 3.11 und 3.13 beschränkt. Die Verwaltung mehrerer Python-Versionen ist unabhängig vom Betriebssystem schwierig. Ubuntu stellt uns jedoch das PPA-Repository deadsnakes
zur Verfügung.
Ohne Deadsnakes
ist es möglich, eine kompatible Version von Python zu finden, aber selbst dann müssen Sie mit PATH-Problemen umgehen und zwischen Python
(Ihrer Standardinstallation) und Python3.10
unterscheiden. Es ist wahrscheinlich möglich, dies nativ von Windows und macOS aus zu erledigen, aber Sie müssen einen anderen Workaround finden. Mit Ubuntu und anderen apt-basierten Linux-Distributionen erhalten Sie zumindest eine reproduzierbare Umgebung mit schnellem Zugriff auf ältere Python-Versionen, die direkt in Ihrem PATH installiert sind.
Proxy-Integration mit Gerapy
Wie bei Vanilla Scrapy selbst ist die Integration von Proxys leicht zu bewerkstelligen. Ganz im Sinne der Gerapy-Einstellungsinjektion können wir einen Proxy direkt in den Spider einfügen. Im folgenden Beispiel fügen wir die Einstellungen HTTPPROXY_ENABLED
und HTTPPROXY_PROXY
hinzu, um eine Verbindung über Web Unlocker herzustellen.
"HTTPPROXY_ENABLED": True,
"HTTPPROXY_PROXY": "http://brd-customer-<your-username>-zone-<your-zone-name>:<your-password>@brd.superproxy.io:33335"
Hier ist die vollständige Spinne nach der Proxy-Integration. Denken Sie daran, den Benutzernamen, die Zone und das Passwort mit Ihrem eigenen zu ersetzen.
Brauchbare Alternativen zu Gerapy
- Scrapyd: Dies ist das eigentliche Rückgrat hinter Gerapy und so ziemlich jedem anderen Scrapy-Stack. Mit Scrapyd können Sie alles über einfache alte HTTP-Anfragen verwalten und ein Dashboard erstellen, wenn Sie dies wünschen.
- Scraping-Funktionen: Mit unseren Scraping-Funktionen können Sie Ihre Scraper direkt in der Cloud bereitstellen und sie von einer Online-IDE aus bearbeiten – mit einem Dashboard wie bei Gerapy, aber flexibler und moderner.
Schlussfolgerung
Gerapy ist ein altes Produkt in unserer sich schnell verändernden Welt. Es erfordert echte Wartung und Sie müssen sich die Hände schmutzig machen. Tools wie Gerapy ermöglichen es Ihnen, Ihre Scraping-Umgebung zu zentralisieren und alles über ein einziges Dashboard zu überwachen. In DevOps-Kreisen bietet Gerapy echten Nutzen und Wert.
Wenn Scrapy nicht Ihr Ding ist, bieten wir viele brauchbare Alternativen, um Ihren Bedarf an Datenerfassung zu decken. Die folgenden Produkte sind nur einige davon.
- Benutzerdefinierte Scraper: Erstellen Sie Scraper ohne Code und stellen Sie sie in unserer Cloud-Infrastruktur bereit.
- Datensätze: Zugriff auf täglich aktualisierte historische Datensätze aus dem gesamten Internet. Eine Bibliothek der Internetgeschichte direkt an Ihren Fingerspitzen.
- Proxys für Privatpersonen: Egal, ob Sie es vorziehen, selbst Code zu schreiben oder mit KI zu scrapen, unsere Proxys ermöglichen Ihnen den Zugang zum Internet mit Geotargeting über eine echte private Internetverbindung.
Melden Sie sich noch heute für eine kostenlose Testversion an und bringen Sie Ihre Datenerfassung auf die nächste Stufe!
Keine Kreditkarte erforderlich