Clase Response¶
La clase Response contiene las respuestas HTTP de todos los fetchers. Permite acceder al estado, las cabeceras, el contenido y las cookies, y usar un Selector para analizar la respuesta.
Puedes importar la clase Response así:
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
)
Clases base: 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"
Todos los motores devuelven esta clase para usar el mismo tipo de respuesta entre las distintas bibliotecas.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
status
|
Código de estado HTTP.
TIPO:
|
reason
|
Mensaje de estado HTTP.
TIPO:
|
cookies
|
Cookies de la respuesta. |
headers
|
Cabeceras de la respuesta.
TIPO:
|
request_headers
|
Cabeceras enviadas con la solicitud.
TIPO:
|
history
|
Lista de respuestas de redirección, si las hay.
TIPO:
|
meta
|
Diccionario de metadatos, como el proxy usado.
TIPO:
|
request
|
Objeto Request del spider asociado, que establece el rastreador del sistema de spiders.
|
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.
|
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.
|
keep_comments
|
Indica si se conservan los comentarios al analizar el HTML. Está desactivado de forma predeterminada.
|
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.
|
storage
|
Clase de almacenamiento que se usa para las funciones adaptativas. Consulta
|
storage_args
|
Diccionario de pares
|
Código fuente en scrapling/engines/toolbelt/custom.py
body
property
¶
Devuelve el cuerpo original del Selector actual sin procesarlo. Es útil para solicitudes de contenido binario o que no sea HTML.
Devuelve el cuerpo original de la respuesta como bytes.
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. |
__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
¶
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.
markdown
¶
Convierte el contenido de la respuesta en Markdown limpio.
Antes de convertirlo, siempre elimina scripts, estilos y contenido oculto o con inyección de instrucciones, igual que el servidor MCP. Requiere el paquete "markdownify" (pip install "scrapling[rag]").
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
css_selector
|
Selector CSS para convertir solo los elementos que coincidan. Se unen todas las coincidencias.
TIPO:
|
main_content_only
|
Convierte solo el contenido de la etiqueta
TIPO:
|
Código fuente en scrapling/engines/toolbelt/custom.py
follow
¶
follow(
url,
sid="",
callback=None,
priority=None,
dont_filter=False,
meta=None,
referer_flow=True,
**kwargs
)
Crea un Request para seguir una URL.
Método auxiliar para que los spiders sigan fácilmente los enlaces de las páginas.
IMPORTANTE: si dejas vacíos los siguientes argumentos, se usará el valor de la solicitud anterior. La única excepción es dont_filter.
También se heredan los argumentos de sesión de la solicitud anterior, salvo method, params, data, json, files y multipart. Por eso, el enlace se sigue con un GET simple, a menos que vuelvas a pasar esos argumentos.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
url
|
URL que se va a seguir. Puede ser relativa; se combinará con la URL actual.
TIPO:
|
sid
|
ID de sesión que se va a usar.
TIPO:
|
callback
|
Método callback del spider que se va a usar.
TIPO:
|
priority
|
Número de prioridad. Cuanto mayor sea, antes se procesará la solicitud.
TIPO:
|
dont_filter
|
Desactiva el filtro para permitir esta solicitud aunque ya se haya realizado.
TIPO:
|
meta
|
Metadatos adicionales que se incluyen en la solicitud. |
referer_flow
|
Está activado de forma predeterminada. Usa la URL de la respuesta actual como referer de la nueva solicitud.
TIPO:
|
kwargs
|
Argumentos adicionales de Request.
TIPO:
|
| DEVUELVE | DESCRIPCIÓN |
|---|---|
Any
|
Objeto Request listo para entregarse con yield. |
Código fuente en scrapling/engines/toolbelt/custom.py
__str__
¶
__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
¶
__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:
|