Saltar a contenido

Usar los tipos propios de Scrapling

Puedes usar los tipos creados para Scrapling fuera de la biblioteca. Es más fácil que copiar su código :)

Puedes importar cada tipo por separado

from scrapling.core.custom_types import TextHandler, AttributesHandler

somestring = TextHandler('{}')
parsed = somestring.json()
somedict_1 = AttributesHandler({'a': 1})
somedict_2 = AttributesHandler(a=1)

TextHandler es una subclase de str de Python, así que admite todas las operaciones y métodos habituales de las cadenas. parsed es el diccionario {}, no la cadena '{}'. Para comprobar una instancia, usa isinstance(somestring, TextHandler). Para comprobar una clase, usa issubclass(TextHandler, str).

AttributesHandler es una subclase de collections.abc.Mapping. Es inmutable, es decir, de solo lectura, y hereda sus operaciones. Puedes acceder a los datos mediante la propiedad _data, pero también es de solo lectura: su tipo es types.MappingProxyType, algo más rápido que collections.abc.Mapping.

Si estás empezando con Python, piensa en AttributesHandler como un dict que puedes consultar, pero cuyos datos no puedes cambiar. Las operaciones y los métodos habituales de los diccionarios funcionan, salvo los que modifican los datos.

Para modificar los datos de AttributesHandler, conviértelos primero en un diccionario, por ejemplo con dict, y cambia esa copia.