Selector-Klasse¶
Selector ist die Hauptklasse von Scrapling zum Auswerten von HTML und Auswählen von Elementen.
Hier finden Sie alle Parameter, Attribute und Methoden von Selector.
Sie können Selector direkt aus scrapling importieren:
scrapling.parser.Selector
¶
Selector(
content=None,
url="",
encoding="utf-8",
huge_tree=True,
root=None,
keep_comments=False,
adaptive=False,
_storage=None,
storage=SQLiteStorageSystem,
storage_args=None,
**_
)
Basisklassen: SelectorsGeneration
flowchart TD
scrapling.parser.Selector[Selector]
scrapling.core.mixins.SelectorsGeneration[SelectorsGeneration]
scrapling.core.mixins.SelectorsGeneration --> scrapling.parser.Selector
click scrapling.parser.Selector href "" "scrapling.parser.Selector"
click scrapling.core.mixins.SelectorsGeneration href "" "scrapling.core.mixins.SelectorsGeneration"
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.
TYP:
|
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.
TYP:
|
keep_comments
|
Legt fest, ob Kommentare beim Parsen des HTML-Bodys erhalten bleiben. Standardmäßig deaktiviert.
TYP:
|
adaptive
|
Schaltet die adaptive Funktion in allen Methoden aus. Dieses Argument hat Vorrang vor allen Argumenten und Methoden der Klasse, die adaptive Funktionen betreffen.
TYP:
|
storage
|
Speicherklasse für die adaptiven Funktionen. Weitere Informationen finden Sie unter
TYP:
|
storage_args
|
Dictionary mit Paaren aus
TYP:
|
Quellcode in scrapling/parser.py
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | |
__slots__
class-attribute
instance-attribute
¶
__slots__ = (
"url",
"encoding",
"__adaptive_enabled",
"_root",
"_storage",
"__keep_comments",
"__huge_tree_enabled",
"__attributes",
"__text",
"__tag",
"_raw_body",
)
body
property
¶
Gibt den unverarbeiteten Body des aktuellen Selector zurück. Nützlich für Binärdaten und andere Inhalte als HTML.
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.
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. |
__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
¶
__str__
¶
__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:
|
Quellcode in scrapling/parser.py
scrapling.parser.Selectors
¶
Basisklassen: List[Selector]
flowchart TD
scrapling.parser.Selectors[Selectors]
click scrapling.parser.Selectors href "" "scrapling.parser.Selectors"
Die Klasse Selectors ist eine Unterklasse der eingebauten Klasse List und bietet einige zusätzliche Methoden.
first
property
¶
Gibt das erste Selector-Element der aktuellen Liste zurück, oder None, wenn sie leer ist.
last
property
¶
Gibt das letzte Selector-Element der aktuellen Liste zurück, oder None, wenn sie leer ist.
__getitem__
¶
xpath
¶
Ruft .xpath() für jedes Element dieser Liste auf und gibt die Ergebnisse als weiteres Selectors-Objekt zurück.
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:
|
identifier
|
Eine Zeichenfolge zum Abrufen der Elementdaten für die adaptive Funktion. 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
css
¶
Ruft .css() für jedes Element dieser Liste auf und gibt die zusammengefassten Ergebnisse als weiteres Selectors-Objekt zurück.
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:
|
identifier
|
Eine Zeichenfolge zum Abrufen der Elementdaten für die adaptive Funktion. 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
re
¶
Ruft .re() für jedes Element dieser Liste auf und gibt die zusammengefassten Ergebnisse als Liste von TextHandler zurück.
| PARAMETER | BESCHREIBUNG |
|---|---|
regex
|
Ein kompilierter regulärer Ausdruck oder ein String.
TYP:
|
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
¶
Ruft .re_first() für jedes Element dieser Liste auf und gibt den ersten Treffer zurück. Gibt es keinen, wird der Standardwert zurückgegeben.
| PARAMETER | BESCHREIBUNG |
|---|---|
regex
|
Ein kompilierter regulärer Ausdruck oder ein String.
TYP:
|
default
|
Standardwert, der zurückgegeben wird, wenn kein Treffer vorliegt.
TYP:
|
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 die Regex ohne Unterscheidung von Groß- und Kleinschreibung kompiliert.
TYP:
|
Quellcode in scrapling/parser.py
search
¶
Durchläuft alle aktuellen Elemente und gibt das erste zurück, das die übergebene Funktion erfüllt.
| PARAMETER | BESCHREIBUNG |
|---|---|
func
|
Eine Funktion, die jedes Element als Argument erhält und True/False zurückgibt. |
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Optional[Selector]
|
Das erste Element, das die Funktion erfüllt, oder |
Quellcode in scrapling/parser.py
filter
¶
Filtert die aktuellen Elemente anhand der übergebenen Funktion.
| PARAMETER | BESCHREIBUNG |
|---|---|
func
|
Eine Funktion, die jedes Element als Argument erhält und True/False zurückgibt. |
| RÜCKGABE | BESCHREIBUNG |
|---|---|
Selectors
|
Das neue |
Quellcode in scrapling/parser.py
get
¶
Gibt die serialisierte Zeichenfolge des ersten Elements zurück, oder default, wenn die Liste leer ist.
| PARAMETER | BESCHREIBUNG |
|---|---|
default
|
Wert, der bei einer leeren Liste zurückgegeben wird.
STANDARDWERT:
|