Spider-Klassen¶
Hier finden Sie die Parameter, Attribute und Methoden der Klassen im Spider-Framework.
Sie können sie direkt importieren:
scrapling.spiders.Spider
¶
Basisklassen: ABC
flowchart TD
scrapling.spiders.Spider[Spider]
click scrapling.spiders.Spider href "" "scrapling.spiders.Spider"
Eine abstrakte Basisklasse zum Erstellen von Web-Spidern.
Weitere Informationen finden Sie auf der Dokumentationswebsite.
Initialisiert den Spider.
| PARAMETER | BESCHREIBUNG |
|---|---|
crawldir
|
Ordner für Checkpoint-Dateien. Wenn angegeben, sind Pause und Fortsetzung möglich. |
interval
|
Sekunden zwischen regelmäßigen Checkpoint-Speicherungen. Standard: 5 Minuten.
TYP:
|
Quellcode in scrapling/spiders/spider.py
concurrent_requests_per_domain
class-attribute
instance-attribute
¶
autothrottle_target_concurrency
class-attribute
instance-attribute
¶
logging_format
class-attribute
instance-attribute
¶
stats
property
¶
Greift auf die aktuellen Crawl-Statistiken zu. Funktioniert auch beim Streaming.
start_requests
async
¶
Erzeugt die ersten Anfragen für den Crawl.
Erzeugt standardmäßig Request-Objekte für jede URL in start_urls. Nutzt die Standardsitzung des Sitzungsmanagers und parse() als Callback.
Überschreiben Sie diese Methode, um die ersten Anfragen genauer zu steuern, etwa mit eigenen Headern oder anderen Callbacks.
Quellcode in scrapling/spiders/spider.py
parse
abstractmethod
async
¶
Standard-Callback zum Verarbeiten von Antworten.
Quellcode in scrapling/spiders/spider.py
on_start
async
¶
Wird vor dem Start des Crawls aufgerufen. Überschreiben Sie die Methode für eigene Vorbereitungsschritte.
| PARAMETER | BESCHREIBUNG |
|---|---|
resuming
|
Aktiviert, wenn der Spider von einem Checkpoint fortgesetzt wird. Sie können diesen Wert in Ihrem Code verwenden.
TYP:
|
Quellcode in scrapling/spiders/spider.py
on_close
async
¶
on_error
async
¶
Behandelt Anfragefehler für alle Anfragen des Spiders.
Überschreiben Sie die Methode für eine eigene Fehlerbehandlung.
on_scraped_item
async
¶
Ein Hook, den Sie überschreiben können, um extrahierte Datensätze zu verarbeiten. Geben Sie None zurück, um den Datensatz ohne Meldung zu verwerfen.
is_blocked
async
¶
Prüft, ob die Antwort blockiert ist. Überschreiben Sie die Methode für eine eigene Erkennung.
retry_blocked_request
async
¶
Überschreiben Sie die Methode bei Bedarf, um eine blockierte Anfrage vor dem nächsten Versuch anzupassen.
__repr__
¶
configure_sessions
¶
Konfiguriert die Sitzungen dieses Spiders.
Überschreiben Sie diese Methode, um eigene Sitzungen hinzuzufügen. Die Standardimplementierung erstellt eine FetcherSession-Sitzung.
Die zuerst hinzugefügte Sitzung wird zur Standardsitzung für start_requests(), wenn nichts anderes angegeben ist.
| PARAMETER | BESCHREIBUNG |
|---|---|
manager
|
Der zu konfigurierende SessionManager.
TYP:
|
Quellcode in scrapling/spiders/spider.py
pause
¶
start
¶
Führt den Spider aus und gibt die Ergebnisse zurück.
Der Haupteinstiegspunkt zum Ausführen eines Spiders. Verwaltet die asynchrone Ausführung intern mit anyio.
Ctrl+C leitet einen geordneten Stopp ein und wartet auf aktive Aufgaben. Ein zweites Ctrl+C erzwingt den sofortigen Stopp.
Wenn crawldir gesetzt ist, wird beim geordneten Stopp auch ein Checkpoint gespeichert. Beim nächsten Start des Spiders können Sie den Crawl damit fortsetzen.
| PARAMETER | BESCHREIBUNG |
|---|---|
use_uvloop
|
Gibt an, ob die schnellere Ereignisschleife von uvloop/winloop verwendet werden soll, falls verfügbar.
TYP:
|
backend_options
|
Optionen des Asyncio-Backends für
TYP:
|
Quellcode in scrapling/spiders/spider.py
stream
async
¶
Gibt Datensätze direkt beim Extrahieren als Stream aus. Geeignet für lange Crawls oder Anwendungen, die auf Spidern aufbauen.
Muss aus einem asynchronen Kontext aufgerufen werden. Gibt Datensätze einzeln direkt nach dem Extrahieren aus. Greifen Sie während der Iteration auf spider.stats zu, um aktuelle Statistiken zu erhalten.
Hinweis: Die Behandlung von SIGINT für Pause und Fortsetzung ist im Streaming-Modus nicht verfügbar.
Quellcode in scrapling/spiders/spider.py
scrapling.spiders.Request
¶
Request(
url,
sid="",
callback=None,
priority=0,
dont_filter=False,
meta=None,
_retry_count=0,
**kwargs
)
Quellcode in scrapling/spiders/request.py
copy
¶
Erstellt eine Kopie dieser Anfrage.
Quellcode in scrapling/spiders/request.py
update_fingerprint
¶
Erzeugt einen eindeutigen Fingerprint zum Erkennen von Duplikaten.
Speichert das Ergebnis nach der ersten Berechnung in self._fp zwischen.
Quellcode in scrapling/spiders/request.py
__repr__
¶
__str__
¶
__lt__
¶
__gt__
¶
__eq__
¶
Anfragen sind gleich, wenn sie denselben Fingerprint haben.
Quellcode in scrapling/spiders/request.py
__getstate__
¶
Bereitet den Zustand für pickle vor. Speichert den Namen des Callbacks als String, damit er mit pickle kompatibel ist.
Quellcode in scrapling/spiders/request.py
__setstate__
¶
Stellt den Zustand aus pickle wieder her. Der Callback wird später mit _restore_callback() wiederhergestellt.
Ergebnisklassen¶
scrapling.spiders.result.CrawlResult
dataclass
¶
scrapling.spiders.result.CrawlStats
dataclass
¶
CrawlStats(
requests_count=0,
concurrent_requests=0,
concurrent_requests_per_domain=0,
failed_requests_count=0,
offsite_requests_count=0,
robots_disallowed_count=0,
cache_hits=0,
cache_misses=0,
response_bytes=0,
items_scraped=0,
items_dropped=0,
start_time=0.0,
end_time=0.0,
download_delay=0.0,
autothrottle_enabled=False,
blocked_requests_count=0,
autothrottle_delays=dict(),
custom_stats=dict(),
response_status_count=dict(),
domains_response_bytes=dict(),
sessions_requests_count=dict(),
proxies=list(),
log_levels_counter=dict(),
)
Statistiken eines Crawl-Durchlaufs.
concurrent_requests_per_domain
class-attribute
instance-attribute
¶
autothrottle_delays
class-attribute
instance-attribute
¶
response_status_count
class-attribute
instance-attribute
¶
domains_response_bytes
class-attribute
instance-attribute
¶
sessions_requests_count
class-attribute
instance-attribute
¶
log_levels_counter
class-attribute
instance-attribute
¶
increment_status
¶
increment_response_bytes
¶
increment_requests_count
¶
to_dict
¶
Quellcode in scrapling/spiders/result.py
scrapling.spiders.result.ItemList
¶
Basisklassen: list
flowchart TD
scrapling.spiders.result.ItemList[ItemList]
click scrapling.spiders.result.ItemList href "" "scrapling.spiders.result.ItemList"
Eine Liste extrahierter Datensätze mit Exportfunktionen.
to_json
¶
Exportiert Datensätze in eine JSON-Datei.
| PARAMETER | BESCHREIBUNG |
|---|---|
path
|
Pfad zur Ausgabedatei. |
indent
|
Formatiert die Ausgabe mit 2 Leerzeichen Einrückung. Etwas langsamer.
TYP:
|
Quellcode in scrapling/spiders/result.py
to_jsonl
¶
Exportiert Datensätze als JSON Lines, mit einem JSON-Objekt pro Zeile.
| PARAMETER | BESCHREIBUNG |
|---|---|
path
|
Pfad zur Ausgabedatei. |
Quellcode in scrapling/spiders/result.py
to_csv
¶
Exportiert Datensätze in eine CSV-Datei.
Auch Datensätze mit unterschiedlichen Schlüsseln werden geschrieben. Fehlende Zellen bleiben leer. Nicht skalare Werte, etwa verschachtelte Wörterbücher oder Listen, werden als JSON geschrieben.
| PARAMETER | BESCHREIBUNG |
|---|---|
path
|
Pfad zur Ausgabedatei. |
fields
|
Die zu schreibenden Spalten. Standardmäßig alle Schlüssel der Datensätze in der Reihenfolge ihres ersten Auftretens.
TYP:
|
delimiter
|
Das Zeichen zwischen den Spalten.
TYP:
|
Quellcode in scrapling/spiders/result.py
to_xml
¶
Exportiert Datensätze in eine XML-Datei.
Jeder Datensatz wird zu einem Element, dessen Kinder nach seinen Schlüsseln benannt sind. Schlüssel, die keine gültigen XML-Namen sind, werden umgeschrieben. Das Original bleibt in einem name-Attribut erhalten. Nicht skalare Werte, etwa verschachtelte Wörterbücher oder Listen, werden als JSON geschrieben.
| PARAMETER | BESCHREIBUNG |
|---|---|
path
|
Pfad zur Ausgabedatei. |
root_tag
|
Name des Elements, das alle Datensätze umschließt.
TYP:
|
item_tag
|
Name des Elements, das jeden einzelnen Datensatz umschließt.
TYP:
|
indent
|
Formatiert die Datei lesbar, statt alles in eine Zeile zu schreiben.
TYP:
|
Quellcode in scrapling/spiders/result.py
Sitzungen verwalten¶
scrapling.spiders.session.SessionManager
¶
Verwaltet vorkonfigurierte Sitzungsinstanzen.
Quellcode in scrapling/spiders/session.py
add
¶
Registriert eine Sitzungsinstanz.
| PARAMETER | BESCHREIBUNG |
|---|---|
session_id
|
Name, mit dem diese Sitzung in Anfragen ausgewählt wird.
TYP:
|
session
|
Ihre vorkonfigurierte Sitzungsinstanz.
TYP:
|
default
|
Bei True wird dies die Standardsitzung.
TYP:
|
lazy
|
Bei True startet die Sitzung erst, wenn eine Anfrage ihre ID verwendet.
TYP:
|
Quellcode in scrapling/spiders/session.py
remove
¶
pop
¶
Entfernt eine Sitzung und gibt sie zurück.
| PARAMETER | BESCHREIBUNG |
|---|---|
session_id
|
ID der zu entfernenden Sitzung.
TYP:
|
Quellcode in scrapling/spiders/session.py
get
¶
start
async
¶
Startet alle Sitzungen, die noch nicht aktiv sind.
Quellcode in scrapling/spiders/session.py
close
async
¶
Schließt alle registrierten Sitzungen.