Clase Selector¶
Selector es la clase principal de Scrapling para analizar HTML y seleccionar elementos.
Aquí puedes consultar todos los parámetros, atributos y métodos de Selector.
Puedes importar Selector directamente desde scrapling:
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,
**_
)
Clases base: 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"
Clase principal que envuelve los datos HTML de entrada. Permite buscar elementos con CSS, XPath o texto. Consulta la documentación para más información.
Esta clase amplía las funciones de lxml.html.HtmlElement con una interfaz más sencilla. No hereda de lxml.html.HtmlElement porque no se puede serializar con pickle, lo que impide varias operaciones que usan referencias. Si lo pruebas, obtendrás AssertionError: invalid Element proxy at.... Es un problema antiguo de lxml; consulta this entry <https://bugs.launchpad.net/lxml/+bug/736708>.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
content
|
Contenido HTML como cadena o bytes. |
url
|
Permite guardar una URL junto con los datos HTML para recuperarla después.
TIPO:
|
encoding
|
Codificación que se usa para analizar el HTML. El valor predeterminado es
TIPO:
|
huge_tree
|
Está activado de forma predeterminada y debe mantenerse activo al analizar documentos HTML grandes. Controla la función de libxml2 que impide analizar ciertos documentos grandes para evitar que se agote la memoria.
TIPO:
|
root
|
Se usa internamente para pasar objetos etree en lugar de los argumentos de texto o cuerpo, y tiene la mayor prioridad. Úsalo solo si sabes cómo afecta al proceso.
TIPO:
|
keep_comments
|
Indica si se conservan los comentarios al analizar el HTML. Está desactivado de forma predeterminada.
TIPO:
|
adaptive
|
Desactiva la función adaptativa de forma global en todos los métodos. Tiene prioridad sobre todos los argumentos y métodos de la clase relacionados con esta función.
TIPO:
|
storage
|
Clase de almacenamiento que se usa para las funciones adaptativas. Consulta
TIPO:
|
storage_args
|
Diccionario de pares
TIPO:
|
Código fuente en 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
¶
Devuelve el cuerpo original del Selector actual sin procesarlo. Es útil para solicitudes de contenido binario o que no sea HTML.
below_elements
property
¶
Devuelve todos los elementos que están bajo el elemento actual en el árbol DOM.
children
property
¶
Devuelve los elementos hijos del elemento actual, o una lista vacía si no tiene.
siblings
property
¶
Devuelve los otros hijos del padre del elemento actual, o una lista vacía si no hay ninguno.
path
property
¶
Devuelve una lista de tipo Selectors con el camino desde la raíz hasta el elemento actual.
next
property
¶
Devuelve el siguiente elemento entre los hijos del mismo padre, o None si no hay ninguno.
previous
property
¶
Devuelve el elemento anterior entre los hijos del mismo padre, o None si no hay ninguno.
generate_css_selector
property
¶
Genera un selector CSS para el elemento actual.
| DEVUELVE | DESCRIPCIÓN |
|---|---|
str
|
Cadena con el selector generado. |
generate_full_css_selector
property
¶
Genera un selector CSS completo para el elemento actual.
| DEVUELVE | DESCRIPCIÓN |
|---|---|
str
|
Cadena con el selector generado. |
generate_xpath_selector
property
¶
Genera un selector XPath para el elemento actual.
| DEVUELVE | DESCRIPCIÓN |
|---|---|
str
|
Cadena con el selector generado. |
generate_full_xpath_selector
property
¶
Genera un selector XPath completo para el elemento actual.
| DEVUELVE | DESCRIPCIÓN |
|---|---|
str
|
Cadena con el selector generado. |
__getitem__
¶
__contains__
¶
__getstate__
¶
get_all_text
¶
Obtiene todas las cadenas de los descendientes de este elemento y las une con el separador indicado.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
separator
|
Separador que se usa para unir las cadenas.
TIPO:
|
strip
|
Si es True, elimina los espacios de los extremos de cada cadena antes de unirlas.
TIPO:
|
ignore_tags
|
Tupla con los nombres de las etiquetas que quieres ignorar.
TIPO:
|
valid_values
|
Si está activado, ignora los elementos cuyo texto está vacío o solo contiene espacios en blanco.
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
TextHandler
|
Un TextHandler. |
Código fuente en scrapling/parser.py
urljoin
¶
prettify
¶
Devuelve el HTML interno del elemento con un formato más legible.
Código fuente en scrapling/parser.py
has_class
¶
iterancestors
¶
Devuelve un generador que recorre todos los antecesores del elemento, empezando por su padre.
Código fuente en scrapling/parser.py
find_ancestor
¶
Recorre los antecesores del elemento hasta encontrar uno que cumpla la función indicada.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
func
|
Función que recibe cada antecesor y devuelve True o False. |
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Optional[Selector]
|
Primer antecesor que cumple la función, o |
Código fuente en scrapling/parser.py
get
¶
Serializa este elemento como una cadena. Para nodos de texto devuelve su texto. Para elementos HTML devuelve el HTML externo, incluida la propia etiqueta.
Código fuente en scrapling/parser.py
getall
¶
__str__
¶
__repr__
¶
Código fuente en scrapling/parser.py
relocate
¶
Busca de nuevo el elemento en el árbol de la página. Se usa de forma automática cuando cambia la estructura de la página.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
element
|
Elemento que se quiere volver a localizar en el árbol.
TIPO:
|
percentage
|
Porcentaje mínimo de coincidencia que se acepta. Su cálculo depende solo de la estructura de la página. Cambia este valor únicamente si sabes cómo afecta a los resultados.
TIPO:
|
selector_type
|
Si es True, convierte el resultado en un objeto
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Union[List[HtmlElement], Selectors]
|
Lista de elementos HTML con la mayor puntuación de coincidencia, o un objeto 'Selectors'. |
Código fuente en scrapling/parser.py
css
¶
Busca en el árbol actual con selectores CSS3.
Importante: usa el argumento identifier si piensas cambiar el selector más adelante y quieres volver a localizar los mismos elementos.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
selector
|
Selector CSS3 que se va a usar.
TIPO:
|
adaptive
|
Si está activado, intenta volver a localizar el elemento si ya se había guardado.
TIPO:
|
identifier
|
Cadena que se usa para guardar y recuperar los datos del elemento en el modo adaptativo. Si no se indica, se usa el selector.
TIPO:
|
auto_save
|
Guarda los elementos nuevos de forma automática para usarlos después con
TIPO:
|
percentage
|
Porcentaje mínimo de coincidencia que acepta
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Clase |
Código fuente en scrapling/parser.py
xpath
¶
Busca en el árbol actual con selectores XPath.
Importante: usa el argumento identifier si piensas cambiar el selector más adelante y quieres volver a localizar los mismos elementos.
Nota: los argumentos adicionales se pasan como variables a la expresión XPath.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
selector
|
Selector XPath que se va a usar.
TIPO:
|
adaptive
|
Si está activado, intenta volver a localizar el elemento si ya se había guardado.
TIPO:
|
identifier
|
Cadena que se usa para guardar y recuperar los datos del elemento en el modo adaptativo. Si no se indica, se usa el selector.
TIPO:
|
auto_save
|
Guarda los elementos nuevos de forma automática para usarlos después con
TIPO:
|
percentage
|
Porcentaje mínimo de coincidencia que acepta
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Clase |
Código fuente en scrapling/parser.py
find_all
¶
Busca elementos con filtros que puedes definir tú mismo.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
args
|
Uno o varios nombres de etiquetas, un iterable de nombres, patrones regex, una función o un diccionario de atributos. Déjalo vacío para seleccionar todos los elementos.
TIPO:
|
kwargs
|
Atributos que se usan para filtrar los elementos.
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Objeto |
Código fuente en 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
¶
Busca elementos con tus propios filtros y devuelve el primer resultado. Si no encuentra ninguno, devuelve None.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
args
|
Uno o varios nombres de etiquetas, un iterable de nombres, patrones regex, una función o un diccionario de atributos. Déjalo vacío para seleccionar todos los elementos.
TIPO:
|
kwargs
|
Atributos que se usan para filtrar los elementos.
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Optional[Selector]
|
Objeto |
Código fuente en scrapling/parser.py
save
¶
Guarda las propiedades únicas del elemento para poder recuperarlo y volver a localizarlo después.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
element
|
Elemento que se quiere guardar. Puede ser un
TIPO:
|
identifier
|
Identificador que se usará para recuperar el elemento del almacenamiento. Consulta la documentación para más información.
TIPO:
|
Código fuente en scrapling/parser.py
retrieve
¶
Busca en el almacenamiento con el identificador y devuelve las propiedades únicas del elemento.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
identifier
|
Identificador que se usa para recuperar el elemento del almacenamiento. Consulta la documentación para más información.
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Optional[Dict[str, Any]]
|
Diccionario con las propiedades únicas. |
Código fuente en scrapling/parser.py
json
¶
Devuelve la respuesta como JSON si se puede convertir; si no, lanza un error.
Código fuente en scrapling/parser.py
re
¶
Aplica la expresión regular al texto actual y devuelve una lista de cadenas con las coincidencias.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
regex
|
Puede ser una expresión regular compilada o una cadena. |
replace_entities
|
Si está activado, sustituye las referencias a entidades por sus caracteres correspondientes.
TIPO:
|
clean_match
|
Si está activado, ignora los espacios en blanco y los espacios consecutivos al buscar coincidencias.
TIPO:
|
case_sensitive
|
Si está desactivado, compila la expresión regular para que no distinga mayúsculas y minúsculas.
TIPO:
|
Código fuente en scrapling/parser.py
re_first
¶
Aplica la expresión regular al texto y devuelve la primera coincidencia, o el valor predeterminado si no encuentra ninguna.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
regex
|
Puede ser una expresión regular compilada o una cadena. |
default
|
Valor que se devuelve si no hay coincidencias.
PREDETERMINADO:
|
replace_entities
|
Si está activado, sustituye las referencias a entidades por sus caracteres correspondientes.
TIPO:
|
clean_match
|
Si está activado, ignora los espacios en blanco y los espacios consecutivos al buscar coincidencias.
TIPO:
|
case_sensitive
|
Si está desactivado, compila la expresión regular para que no distinga mayúsculas y minúsculas.
TIPO:
|
Código fuente en scrapling/parser.py
find_similar
¶
Busca elementos a la misma profundidad del árbol y con los mismos nombres de etiqueta, de padre y otras propiedades. Devuelve los que coinciden con los atributos del elemento actual por encima del umbral indicado.
Esta función está inspirada en AutoScraper. Sirve, por ejemplo, cuando encuentras un div de producto en una lista y quieres usarlo como punto de partida para buscar los demás productos. Funciona con cualquier tipo de elemento.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
similarity_threshold
|
Porcentaje que se usa al comparar los atributos. Antes de esa comparación, los elementos encontrados ya comparten profundidad, nombre de etiqueta y nombres de las etiquetas del padre y del abuelo. Por eso, es muy probable que sean correctos, alrededor del 99 %. La comparación de atributos añade otro filtro. Cambia este valor solo si no obtienes los resultados que necesitas. Si ni el elemento actual ni el similar tienen atributos, se considera una coincidencia del 100 %.
TIPO:
|
ignore_attributes
|
Nombres de atributos que se ignoran en la comparación final. De forma predeterminada se ignoran
TIPO:
|
match_text
|
Si es True, también compara el texto de los elementos. Normalmente no hace falta, pero puede ser útil en algunos casos.
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Contenedor |
Código fuente en scrapling/parser.py
find_by_text
¶
Busca elementos cuyo texto coincida de forma total o parcial con el texto indicado.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
text
|
Texto que se quiere buscar.
TIPO:
|
first_match
|
Devuelve el primer elemento que cumple las condiciones. Está activado de forma predeterminada.
TIPO:
|
partial
|
Si está activado, devuelve elementos que contengan el texto indicado.
TIPO:
|
case_sensitive
|
Si está activado, distingue mayúsculas y minúsculas.
TIPO:
|
clean_match
|
Si está activado, ignora los espacios en blanco y los espacios consecutivos al buscar coincidencias.
TIPO:
|
Código fuente en scrapling/parser.py
find_by_regex
¶
Busca elementos cuyo texto coincida con el patrón de expresión regular indicado.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
query
|
Expresión regular o patrón que se quiere buscar. |
first_match
|
Devuelve el primer elemento que cumple las condiciones. Está activado de forma predeterminada.
TIPO:
|
case_sensitive
|
Si está activado, la expresión regular distingue mayúsculas y minúsculas.
TIPO:
|
clean_match
|
Si está activado, ignora los espacios en blanco y los espacios consecutivos al buscar coincidencias.
TIPO:
|
Código fuente en scrapling/parser.py
scrapling.parser.Selectors
¶
Clases base: List[Selector]
flowchart TD
scrapling.parser.Selectors[Selectors]
click scrapling.parser.Selectors href "" "scrapling.parser.Selectors"
La clase Selectors hereda de la clase integrada List y añade algunos métodos.
__getitem__
¶
xpath
¶
Llama a .xpath() para cada elemento de esta lista y devuelve los resultados en otro Selectors.
Importante: usa el argumento identifier si piensas cambiar el selector más adelante y quieres volver a localizar los mismos elementos.
Nota: los argumentos adicionales se pasan como variables a la expresión XPath.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
selector
|
Selector XPath que se va a usar.
TIPO:
|
identifier
|
Cadena que se usa para recuperar los datos del elemento en el modo adaptativo. Si no se indica, se usa el selector.
TIPO:
|
auto_save
|
Guarda los elementos nuevos de forma automática para usarlos después con
TIPO:
|
percentage
|
Porcentaje mínimo de coincidencia que acepta
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Clase |
Código fuente en scrapling/parser.py
css
¶
Llama a .css() para cada elemento de esta lista y une los resultados en otro Selectors, sin listas anidadas.
Importante: usa el argumento identifier si piensas cambiar el selector más adelante y quieres volver a localizar los mismos elementos.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
selector
|
Selector CSS3 que se va a usar.
TIPO:
|
identifier
|
Cadena que se usa para recuperar los datos del elemento en el modo adaptativo. Si no se indica, se usa el selector.
TIPO:
|
auto_save
|
Guarda los elementos nuevos de forma automática para usarlos después con
TIPO:
|
percentage
|
Porcentaje mínimo de coincidencia que acepta
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Clase |
Código fuente en scrapling/parser.py
re
¶
Llama a .re() para cada elemento de esta lista y une los resultados en una lista de TextHandler, sin listas anidadas.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
regex
|
Puede ser una expresión regular compilada o una cadena.
TIPO:
|
replace_entities
|
Si está activado, sustituye las referencias a entidades por sus caracteres correspondientes.
TIPO:
|
clean_match
|
Si está activado, ignora los espacios en blanco y los espacios consecutivos al buscar coincidencias.
TIPO:
|
case_sensitive
|
Si está desactivado, compila la expresión regular para que no distinga mayúsculas y minúsculas.
TIPO:
|
Código fuente en scrapling/parser.py
re_first
¶
Llama a .re_first() para cada elemento de esta lista y devuelve el primer resultado, o el valor predeterminado si no hay ninguno.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
regex
|
Puede ser una expresión regular compilada o una cadena.
TIPO:
|
default
|
Valor que se devuelve si no hay coincidencias.
TIPO:
|
replace_entities
|
Si está activado, sustituye las referencias a entidades por sus caracteres correspondientes.
TIPO:
|
clean_match
|
Si está activado, ignora los espacios en blanco y los espacios consecutivos al buscar coincidencias.
TIPO:
|
case_sensitive
|
Si está desactivado, compila la expresión regular para que no distinga mayúsculas y minúsculas.
TIPO:
|
Código fuente en scrapling/parser.py
search
¶
Recorre los elementos actuales y devuelve el primero que cumple la función indicada.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
func
|
Función que recibe cada elemento y devuelve True o False. |
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Optional[Selector]
|
Primer elemento que cumple la función, o |
Código fuente en scrapling/parser.py
filter
¶
Filtra los elementos actuales con la función indicada.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
func
|
Función que recibe cada elemento y devuelve True o False. |
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Selectors
|
Nuevo objeto |
Código fuente en scrapling/parser.py
get
¶
Devuelve la cadena serializada del primer elemento, o default si la lista está vacía.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
default
|
Valor que se devuelve si la lista actual está vacía.
PREDETERMINADO:
|