Response-Klasse¶
Die Klasse Response enthält die HTTP-Antworten aller Fetcher. Sie bietet Zugriff auf Status, Header, Inhalt und Cookies sowie einen Selector zum Auswerten der Antwort.
So importieren Sie die Klasse Response:
scrapling.engines.toolbelt.custom.Response
¶
Response(
url,
content,
status,
reason,
cookies,
headers,
request_headers,
encoding="utf-8",
method="GET",
history=None,
meta=None,
*,
_log=True,
**selector_config
)
Basisklassen: Selector
flowchart TD
scrapling.engines.toolbelt.custom.Response[Response]
scrapling.parser.Selector[Selector]
scrapling.core.mixins.SelectorsGeneration[SelectorsGeneration]
scrapling.parser.Selector --> scrapling.engines.toolbelt.custom.Response
scrapling.core.mixins.SelectorsGeneration --> scrapling.parser.Selector
click scrapling.engines.toolbelt.custom.Response href "" "scrapling.engines.toolbelt.custom.Response"
click scrapling.parser.Selector href "" "scrapling.parser.Selector"
click scrapling.core.mixins.SelectorsGeneration href "" "scrapling.core.mixins.SelectorsGeneration"
Alle Engines geben diese Klasse zurück, damit verschiedene Bibliotheken denselben Antworttyp verwenden.
| PARAMETER | BESCHREIBUNG |
|---|---|
status
|
HTTP-Statuscode.
TYP:
|
reason
|
HTTP-Statusmeldung.
TYP:
|
cookies
|
Cookies der Antwort. |
headers
|
Header der Antwort.
TYP:
|
request_headers
|
Mit der Anfrage gesendete Header.
TYP:
|
history
|
Liste der Weiterleitungsantworten, falls vorhanden.
TYP:
|
meta
|
Dictionary mit Metadaten, etwa dem verwendeten Proxy.
TYP:
|
request
|
Zugehöriges Request-Objekt des Spiders. Wird im Spider-Framework vom Crawler gesetzt.
|
Die Hauptklasse für die HTML-Eingabedaten. Mit ihr suchen Sie Elemente über CSS, XPath oder einfachen Text. Weitere Informationen finden Sie in der Dokumentation.
Diese Klasse erweitert die Funktionen von lxml.html.HtmlElement mit einer einfacheren Schnittstelle. Sie erbt nicht von lxml.html.HtmlElement, da dieser Typ nicht mit pickle gespeichert werden kann. Das verhindert viele Vorgänge, die Referenzen verwenden. Bei einem Versuch erhalten Sie AssertionError: invalid Element proxy at.... Das ist ein älteres Problem von lxml, siehe this entry <https://bugs.launchpad.net/lxml/+bug/736708>.
| PARAMETER | BESCHREIBUNG |
|---|---|
content
|
HTML-Inhalt als String oder Bytes. |
url
|
Erlaubt das Speichern einer URL zusammen mit den HTML-Daten, um sie später abzurufen.
TYP:
|
encoding
|
Zeichenkodierung für das Parsen von HTML. Standardmäßig
TYP:
|
huge_tree
|
Standardmäßig aktiviert und beim Parsen großer HTML-Dokumente immer zu aktivieren. Steuert die Funktion von libxml2, die das Parsen bestimmter großer Dokumente verhindert, um den Speicher vor Überlastung zu schützen.
|
root
|
Wird intern verwendet, um etree-Objekte statt Text- oder Body-Argumenten zu übergeben. Hat die höchste Priorität. Verwenden Sie es nur, wenn Sie die Auswirkungen kennen.
|
keep_comments
|
Legt fest, ob Kommentare beim Parsen des HTML-Bodys erhalten bleiben. Standardmäßig deaktiviert.
|
adaptive
|
Schaltet die adaptive Funktion in allen Methoden aus. Dieses Argument hat Vorrang vor allen Argumenten und Methoden der Klasse, die adaptive Funktionen betreffen.
|
storage
|
Speicherklasse für die adaptiven Funktionen. Weitere Informationen finden Sie unter
|
storage_args
|
Dictionary mit Paaren aus
|
Quellcode in scrapling/engines/toolbelt/custom.py
body
property
¶
Gibt den unverarbeiteten Body des aktuellen Selector zurück. Nützlich für Binärdaten und andere Inhalte als HTML.
Gibt den unverarbeiteten Body der Antwort als Bytes zurück.
generate_css_selector
property
¶
Erstellt einen CSS-Selektor für das aktuelle Element.
| RÜCKGABE | BESCHREIBUNG |
|---|---|
str
|
String mit dem erstellten Selektor. |
generate_full_css_selector
property
¶
Erstellt einen vollständigen CSS-Selektor für das aktuelle Element.
| RÜCKGABE | BESCHREIBUNG |
|---|---|
str
|
String mit dem erstellten Selektor. |
generate_xpath_selector
property
¶
Erstellt einen XPath-Selektor für das aktuelle Element.
| RÜCKGABE | BESCHREIBUNG |
|---|---|
str
|
String mit dem erstellten Selektor. |
generate_full_xpath_selector
property
¶
Erstellt einen vollständigen XPath-Selektor für das aktuelle Element.
| RÜCKGABE | BESCHREIBUNG |
|---|---|
str
|
String mit dem erstellten Selektor. |
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"url",
"encoding",
"__adaptive_enabled",
"_root",
"_storage",
"__keep_comments",
"__huge_tree_enabled",
"__attributes",
"__text",
"__tag",
"_raw_body",
)
below_elements
property
¶
Gibt alle Elemente unterhalb des aktuellen Elements im DOM-Baum zurück.
children
property
¶
Gibt die Kindelemente des aktuellen Elements zurück, andernfalls eine leere Liste.
siblings
property
¶
Gibt die anderen Kinder des Elternelements zurück, andernfalls eine leere Liste.
path
property
¶
Gibt eine Liste vom Typ Selectors zurück, die den Pfad von der Wurzel zum aktuellen Element enthält.
next
property
¶
Gibt das nächste Element unter den Kindern desselben Elternelements zurück, andernfalls None.
previous
property
¶
Gibt das vorherige Element unter den Kindern desselben Elternelements zurück, andernfalls None.
markdown
¶
Wandelt den Antwortinhalt in bereinigtes Markdown um.
Vor der Umwandlung werden Skripte, Styles und versteckte Inhalte oder Inhalte mit eingeschleusten Anweisungen immer entfernt. Das entspricht der Bereinigung im MCP-Server. Erfordert das Paket "markdownify" (pip install "scrapling[rag]").
| PARAMETER | BESCHREIBUNG |
|---|---|
css_selector
|
CSS-Selektor, um nur passende Elemente umzuwandeln. Alle Treffer werden zusammengefügt.
TYP:
|
main_content_only
|
Wandelt nur den Inhalt innerhalb des Tags
TYP:
|
Quellcode in scrapling/engines/toolbelt/custom.py
follow
¶
follow(
url,
sid="",
callback=None,
priority=None,
dont_filter=False,
meta=None,
referer_flow=True,
**kwargs
)
Erstellt einen Request, um einer URL zu folgen.
Hilfsmethode, mit der Spider einfach Links aus Seiten folgen können.
WICHTIG: Wenn die folgenden Argumente leer bleiben, wird jeweils der Wert der vorherigen Anfrage verwendet. Die einzige Ausnahme ist dont_filter.
Die Sitzungsargumente der vorherigen Anfrage werden ebenfalls übernommen, außer method, params, data, json, files und multipart. Einem Link wird daher mit einem einfachen GET gefolgt, sofern Sie diese Argumente nicht erneut übergeben.
| PARAMETER | BESCHREIBUNG |
|---|---|
url
|
URL, der gefolgt werden soll. Sie darf relativ sein und wird dann mit der aktuellen URL verbunden.
TYP:
|
sid
|
ID der zu verwendenden Sitzung.
TYP:
|
callback
|
Zu verwendende Callback-Methode des Spiders.
TYP:
|
priority
|
Prioritätswert. Je höher der Wert, desto früher wird die Anfrage verarbeitet.
TYP:
|
dont_filter
|
Schaltet den Filter aus, damit eine bereits ausgeführte Anfrage erneut erlaubt ist.
TYP:
|
meta
|
Zusätzliche Metadaten für die Anfrage. |
referer_flow
|
Standardmäßig aktiviert. Setzt die URL der aktuellen Antwort als Referer für die neue Anfrage.
TYP:
|
kwargs
|
Zusätzliche Request-Argumente.
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Any
|
Request-Objekt, das mit yield ausgegeben werden kann. |
Quellcode in scrapling/engines/toolbelt/custom.py
__str__
¶
__getitem__
¶
__contains__
¶
__getstate__
¶
get_all_text
¶
Gibt alle untergeordneten Strings dieses Elements zurück, verbunden durch das angegebene Trennzeichen.
| PARAMETER | BESCHREIBUNG |
|---|---|
separator
|
Trennzeichen zum Verbinden der Strings.
TYP:
|
strip
|
Wenn True, wird Leerraum am Anfang und Ende der Strings vor dem Verbinden entfernt.
TYP:
|
ignore_tags
|
Tupel mit allen zu ignorierenden Tag-Namen.
TYP:
|
valid_values
|
Wenn aktiviert, werden Elemente ignoriert, deren Text leer ist oder nur aus Leerraum besteht.
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
TextHandler
|
Ein TextHandler. |
Quellcode in scrapling/parser.py
urljoin
¶
Verbindet die URL dieses Selectors mit einer relativen URL zu einer vollständigen absoluten URL.
prettify
¶
Gibt den inneren HTML-Code des Elements in lesbar formatiertem Zustand zurück.
Quellcode in scrapling/parser.py
has_class
¶
iterancestors
¶
Gibt einen Generator zurück, der alle Vorfahren des Elements durchläuft, beginnend mit dem Elternelement.
Quellcode in scrapling/parser.py
find_ancestor
¶
Durchläuft die Vorfahren des Elements, bis einer die übergebene Funktion erfüllt.
| PARAMETER | BESCHREIBUNG |
|---|---|
func
|
Funktion, die jeden Vorfahren als Argument erhält und True oder False zurückgibt. |
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Optional[Selector]
|
Der erste Vorfahr, der die Funktion erfüllt, andernfalls |
Quellcode in scrapling/parser.py
get
¶
Wandelt dieses Element in einen String um. Bei Textknoten wird der Textwert zurückgegeben, bei HTML-Elementen das äußere HTML.
Quellcode in scrapling/parser.py
getall
¶
__repr__
¶
Quellcode in scrapling/parser.py
relocate
¶
Sucht das Element erneut im Seitenbaum. Wird bei Änderungen der Seitenstruktur automatisch verwendet.
| PARAMETER | BESCHREIBUNG |
|---|---|
element
|
Das Element, das im Baum wiedergefunden werden soll.
TYP:
|
percentage
|
Der niedrigste erlaubte Prozentsatz für eine Übereinstimmung. Die Berechnung hängt nur von der Seitenstruktur ab. Ändern Sie diesen Wert nur, wenn Sie die Auswirkungen kennen.
TYP:
|
selector_type
|
Wenn True, wird das Ergebnis in ein
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Union[List[HtmlElement], Selectors]
|
Liste der reinen HTML-Elemente mit der höchsten Übereinstimmung oder ein 'Selectors'-Objekt. |
Quellcode in scrapling/parser.py
css
¶
Durchsucht den aktuellen Baum mit CSS3-Selektoren.
Wichtig: Verwenden Sie am besten das Argument identifier, wenn Sie später einen anderen Selektor verwenden und dieselben Elemente wiederfinden möchten.
| PARAMETER | BESCHREIBUNG |
|---|---|
selector
|
Der zu verwendende CSS3-Selektor.
TYP:
|
adaptive
|
Wenn aktiviert, versucht die Funktion, ein zuvor gespeichertes Element wiederzufinden.
TYP:
|
identifier
|
String zum Speichern und Abrufen der Elementdaten für adaptive Funktionen. Ohne Angabe wird der Selektor verwendet.
TYP:
|
auto_save
|
Speichert neue Elemente automatisch für die spätere Verwendung mit
TYP:
|
percentage
|
Der niedrigste erlaubte Prozentsatz für eine Übereinstimmung bei
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Selectors
|
Die Klasse |
Quellcode in scrapling/parser.py
xpath
¶
Durchsucht den aktuellen Baum mit XPath-Selektoren.
Wichtig: Verwenden Sie am besten das Argument identifier, wenn Sie später einen anderen Selektor verwenden und dieselben Elemente wiederfinden möchten.
Hinweis: Zusätzliche Schlüsselwortargumente werden als XPath-Variablen an den XPath-Ausdruck übergeben!
| PARAMETER | BESCHREIBUNG |
|---|---|
selector
|
Der zu verwendende XPath-Selektor.
TYP:
|
adaptive
|
Wenn aktiviert, versucht die Funktion, ein zuvor gespeichertes Element wiederzufinden.
TYP:
|
identifier
|
String zum Speichern und Abrufen der Elementdaten für adaptive Funktionen. Ohne Angabe wird der Selektor verwendet.
TYP:
|
auto_save
|
Speichert neue Elemente automatisch für die spätere Verwendung mit
TYP:
|
percentage
|
Der niedrigste erlaubte Prozentsatz für eine Übereinstimmung bei
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Selectors
|
Die Klasse |
Quellcode in scrapling/parser.py
find_all
¶
Findet Elemente einfach mit selbst festgelegten Filtern.
| PARAMETER | BESCHREIBUNG |
|---|---|
args
|
Tag-Name, mehrere Tag-Namen, Iterable von Tag-Namen, Regex-Muster, Funktion oder Dictionary mit Elementattributen. Leer lassen, um alle auszuwählen.
TYP:
|
kwargs
|
Attribute, nach denen die Elemente gefiltert werden sollen.
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Selectors
|
Das |
Quellcode in scrapling/parser.py
710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 | |
find
¶
Findet Elemente mit selbst festgelegten Filtern und gibt den ersten Treffer zurück. Andernfalls wird None zurückgegeben.
| PARAMETER | BESCHREIBUNG |
|---|---|
args
|
Tag-Name, mehrere Tag-Namen, Iterable von Tag-Namen, Regex-Muster, Funktion oder Dictionary mit Elementattributen. Leer lassen, um alle auszuwählen.
TYP:
|
kwargs
|
Attribute, nach denen die Elemente gefiltert werden sollen.
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Optional[Selector]
|
Das |
Quellcode in scrapling/parser.py
save
¶
Speichert die eindeutigen Eigenschaften des Elements, um es später abzurufen und wiederzufinden.
| PARAMETER | BESCHREIBUNG |
|---|---|
element
|
Das zu speichernde Element. Es kann ein
TYP:
|
identifier
|
Kennung, mit der das Element später aus dem Speicher abgerufen wird. Weitere Informationen finden Sie in der Dokumentation.
TYP:
|
Quellcode in scrapling/parser.py
retrieve
¶
Durchsucht den Speicher anhand der Kennung und gibt die eindeutigen Eigenschaften des Elements zurück.
| PARAMETER | BESCHREIBUNG |
|---|---|
identifier
|
Kennung zum Abrufen des Elements aus dem Speicher. Weitere Informationen finden Sie in der Dokumentation.
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Optional[Dict[str, Any]]
|
Dictionary mit den eindeutigen Eigenschaften. |
Quellcode in scrapling/parser.py
json
¶
Gibt die Antwort als JSON zurück, wenn sie sich entsprechend umwandeln lässt. Andernfalls wird ein Fehler ausgelöst.
Quellcode in scrapling/parser.py
re
¶
Wendet den angegebenen Regex auf den aktuellen Text an und gibt eine Liste von Strings mit den Treffern zurück.
| PARAMETER | BESCHREIBUNG |
|---|---|
regex
|
Ein kompilierter regulärer Ausdruck oder ein String. |
replace_entities
|
Wenn aktiviert, werden Zeichenreferenzen durch die entsprechenden Zeichen ersetzt.
TYP:
|
clean_match
|
Wenn aktiviert, wird Leerraum einschließlich aufeinanderfolgender Leerzeichen bei der Suche ignoriert.
TYP:
|
case_sensitive
|
Wenn deaktiviert, wird der Regex so kompiliert, dass er Groß- und Kleinschreibung ignoriert.
TYP:
|
Quellcode in scrapling/parser.py
re_first
¶
Wendet den angegebenen Regex auf den Text an und gibt den ersten Treffer zurück. Ohne Treffer wird der Standardwert zurückgegeben.
| PARAMETER | BESCHREIBUNG |
|---|---|
regex
|
Ein kompilierter regulärer Ausdruck oder ein String. |
default
|
Standardwert, der zurückgegeben wird, wenn kein Treffer vorliegt.
STANDARDWERT:
|
replace_entities
|
Wenn aktiviert, werden Zeichenreferenzen durch die entsprechenden Zeichen ersetzt.
TYP:
|
clean_match
|
Wenn aktiviert, wird Leerraum einschließlich aufeinanderfolgender Leerzeichen bei der Suche ignoriert.
TYP:
|
case_sensitive
|
Wenn deaktiviert, wird der Regex so kompiliert, dass er Groß- und Kleinschreibung ignoriert.
TYP:
|
Quellcode in scrapling/parser.py
find_similar
¶
Findet Elemente auf derselben Tiefe im Seitenbaum mit demselben Tag-Namen, demselben Tag-Namen des Elternelements und weiteren gemeinsamen Merkmalen. Gibt dann diejenigen zurück, deren Attribute mit denen des aktuellen Elements über dem angegebenen Schwellenwert übereinstimmen.
Diese Funktion wurde von AutoScraper inspiriert. Sie ist zum Beispiel hilfreich, wenn Sie ein Produkt-div in einer Produktliste gefunden haben und damit weitere Produkte suchen möchten. Sie funktioniert jedoch unabhängig vom Elementtyp.
| PARAMETER | BESCHREIBUNG |
|---|---|
similarity_threshold
|
Prozentsatz zum Vergleichen der Elementattribute. Schon vor diesem Vergleich haben die gefundenen Elemente dieselbe Tiefe, denselben Tag-Namen sowie dieselben Tag-Namen ihrer Eltern- und Großelternelemente. Daher sind sie mit 99 % Wahrscheinlichkeit bereits richtig, sofern Sie nicht besonders viel Pech haben. Erst danach werden die Attribute verglichen. Ändern Sie den Wert nur, wenn Sie unerwünschte Ergebnisse erhalten. Haben weder das aktuelle noch das ähnliche Element Attribute, gilt das als Übereinstimmung von 100 %.
TYP:
|
ignore_attributes
|
Die angegebenen Attributnamen werden beim letzten Vergleichsschritt ignoriert. Standardmäßig werden
TYP:
|
match_text
|
Wenn True, wird der Textinhalt beim Vergleich berücksichtigt. Für gewöhnliche Fälle nicht empfohlen, kann aber je nach Fall nützlich sein.
TYP:
|
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Selectors
|
Ein |
Quellcode in scrapling/parser.py
find_by_text
¶
Findet Elemente, deren Textinhalt ganz oder teilweise mit der Eingabe übereinstimmt.
| PARAMETER | BESCHREIBUNG |
|---|---|
text
|
Text, nach dem gesucht werden soll.
TYP:
|
first_match
|
Gibt das erste Element zurück, das die Bedingungen erfüllt. Standardmäßig aktiviert.
TYP:
|
partial
|
Wenn aktiviert, gibt die Funktion Elemente zurück, die den eingegebenen Text enthalten.
TYP:
|
case_sensitive
|
Berücksichtigt die Groß- und Kleinschreibung, wenn aktiviert.
TYP:
|
clean_match
|
Wenn aktiviert, wird Leerraum einschließlich aufeinanderfolgender Leerzeichen bei der Suche ignoriert.
TYP:
|
Quellcode in scrapling/parser.py
find_by_regex
¶
Sucht Elemente, deren Text zum angegebenen Regex-Muster passt.
| PARAMETER | BESCHREIBUNG |
|---|---|
query
|
Regex-Muster für die Suche. |
first_match
|
Gibt das erste Element zurück, das die Bedingungen erfüllt. Standardmäßig aktiviert.
TYP:
|
case_sensitive
|
Berücksichtigt die Groß- und Kleinschreibung in der Regex, wenn aktiviert.
TYP:
|
clean_match
|
Ignoriert bei der Suche alle Leerraumzeichen und aufeinanderfolgenden Leerzeichen, wenn aktiviert.
TYP:
|