Clases de spiders¶
Aquí puedes consultar los parámetros, atributos y métodos de las clases del framework de spiders.
Puedes importarlas directamente:
scrapling.spiders.Spider
¶
Clases base: ABC
flowchart TD
scrapling.spiders.Spider[Spider]
click scrapling.spiders.Spider href "" "scrapling.spiders.Spider"
Clase base abstracta para crear spiders web.
Consulta el sitio de documentación para más información.
Inicia el spider.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
crawldir
|
Directorio de los puntos de guardado. Si se indica, activa la pausa y reanudación. |
interval
|
Segundos entre guardados periódicos. El valor predeterminado equivale a 5 minutos.
TIPO:
|
Código fuente en scrapling/spiders/spider.py
concurrent_requests_per_domain
class-attribute
instance-attribute
¶
autothrottle_target_concurrency
class-attribute
instance-attribute
¶
logging_format
class-attribute
instance-attribute
¶
stats
property
¶
Accede a las estadísticas actuales del rastreo, también durante el streaming.
start_requests
async
¶
Genera las solicitudes iniciales del rastreo.
De forma predeterminada, genera un objeto Request por cada URL de start_urls, con la sesión predeterminada del gestor y parse() como callback.
Redefine este método para controlar las solicitudes iniciales, por ejemplo para añadir cabeceras o usar distintos callbacks.
Código fuente en scrapling/spiders/spider.py
parse
abstractmethod
async
¶
Callback predeterminado para procesar respuestas.
Código fuente en scrapling/spiders/spider.py
on_start
async
¶
Se llama antes de empezar el rastreo. Redefínelo para preparar el trabajo.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
resuming
|
Está activado si el spider se reanuda desde un punto de guardado. Puedes usarlo en tu propia lógica.
TIPO:
|
Código fuente en scrapling/spiders/spider.py
on_close
async
¶
on_error
async
¶
Gestiona los errores de todas las solicitudes del spider.
Redefínelo para aplicar tu propia gestión de errores.
on_scraped_item
async
¶
Hook que puedes redefinir para procesar los elementos extraídos. Devuelve None para descartar un elemento sin mostrar mensajes.
is_blocked
async
¶
Comprueba si la respuesta está bloqueada. Redefínelo para usar tu propia lógica de detección.
retry_blocked_request
async
¶
Redefínelo si necesitas modificar una solicitud bloqueada antes de reintentarla.
__repr__
¶
configure_sessions
¶
Configura las sesiones de este spider.
Redefine este método para añadir tus propias sesiones. La implementación predeterminada crea una FetcherSession.
La primera sesión añadida se usa de forma predeterminada para start_requests(), salvo que indiques otra.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
manager
|
SessionManager que se va a configurar.
TIPO:
|
Código fuente en scrapling/spiders/spider.py
pause
¶
start
¶
Ejecuta el spider y devuelve los resultados.
Punto de entrada principal para ejecutar un spider. Gestiona la ejecución asíncrona mediante anyio.
Al pulsar Ctrl+C, empieza el cierre ordenado y espera a que terminen las tareas activas. Si lo pulsas por segunda vez, fuerza la parada inmediata.
Si defines crawldir, el cierre ordenado también guarda el estado. Así puedes reanudar el rastreo ejecutando el spider de nuevo.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
use_uvloop
|
Indica si se usa el bucle de eventos más rápido de uvloop o winloop, si está disponible.
TIPO:
|
backend_options
|
Opciones del backend asyncio que se pasan a
TIPO:
|
Código fuente en scrapling/spiders/spider.py
stream
async
¶
Entrega los elementos a medida que se extraen. Es útil para spiders que tardan mucho o para crear aplicaciones basadas en ellos.
Debe llamarse desde un contexto asíncrono. Entrega los elementos uno a uno al extraerlos. Consulta spider.stats durante la iteración para ver estadísticas en tiempo real.
Nota: el modo streaming no admite la gestión de SIGINT para pausar y reanudar.
Código fuente en scrapling/spiders/spider.py
scrapling.spiders.Request
¶
Request(
url,
sid="",
callback=None,
priority=0,
dont_filter=False,
meta=None,
_retry_count=0,
**kwargs
)
Código fuente en scrapling/spiders/request.py
copy
¶
Crea una copia de esta solicitud.
Código fuente en scrapling/spiders/request.py
update_fingerprint
¶
Genera una huella única para evitar duplicados.
Guarda el resultado en self._fp después del primer cálculo.
Código fuente en scrapling/spiders/request.py
__repr__
¶
__str__
¶
__lt__
¶
__gt__
¶
__eq__
¶
Dos solicitudes son iguales si tienen la misma huella.
Código fuente en scrapling/spiders/request.py
__getstate__
¶
Prepara el estado para pickle y guarda el nombre del callback como cadena para que sea compatible.
Código fuente en scrapling/spiders/request.py
__setstate__
¶
Restaura el estado desde pickle. El callback se restaura después mediante _restore_callback().
Clases de resultados¶
scrapling.spiders.result.CrawlResult
dataclass
¶
Resultado completo de una ejecución del spider.
__len__
¶
scrapling.spiders.result.CrawlStats
dataclass
¶
CrawlStats(
requests_count=0,
concurrent_requests=0,
concurrent_requests_per_domain=0,
failed_requests_count=0,
offsite_requests_count=0,
robots_disallowed_count=0,
cache_hits=0,
cache_misses=0,
response_bytes=0,
items_scraped=0,
items_dropped=0,
start_time=0.0,
end_time=0.0,
download_delay=0.0,
autothrottle_enabled=False,
blocked_requests_count=0,
autothrottle_delays=dict(),
custom_stats=dict(),
response_status_count=dict(),
domains_response_bytes=dict(),
sessions_requests_count=dict(),
proxies=list(),
log_levels_counter=dict(),
)
Estadísticas de una ejecución de rastreo.
concurrent_requests_per_domain
class-attribute
instance-attribute
¶
autothrottle_delays
class-attribute
instance-attribute
¶
response_status_count
class-attribute
instance-attribute
¶
domains_response_bytes
class-attribute
instance-attribute
¶
sessions_requests_count
class-attribute
instance-attribute
¶
log_levels_counter
class-attribute
instance-attribute
¶
increment_status
¶
increment_response_bytes
¶
increment_requests_count
¶
to_dict
¶
Código fuente en scrapling/spiders/result.py
scrapling.spiders.result.ItemList
¶
Clases base: list
flowchart TD
scrapling.spiders.result.ItemList[ItemList]
click scrapling.spiders.result.ItemList href "" "scrapling.spiders.result.ItemList"
Lista de elementos extraídos con funciones de exportación.
to_json
¶
Exporta los elementos a un archivo JSON.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
path
|
Ruta del archivo de salida. |
indent
|
Usa un formato legible con sangría de 2 espacios. Es un poco más lento.
TIPO:
|
Código fuente en scrapling/spiders/result.py
to_jsonl
¶
Exporta los elementos como JSON Lines, con un objeto JSON por línea.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
path
|
Ruta del archivo de salida. |
Código fuente en scrapling/spiders/result.py
to_csv
¶
Exporta los elementos a un archivo CSV.
También se escriben los elementos que no comparten las mismas claves, con las celdas que faltan vacías. Los valores que no sean escalares, como listas o diccionarios anidados, se guardan como JSON.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
path
|
Ruta del archivo de salida. |
fields
|
Columnas que se van a escribir. De forma predeterminada, incluye todas las claves encontradas en los elementos, en el orden en que aparecieron.
TIPO:
|
delimiter
|
Carácter que separa las columnas.
TIPO:
|
Código fuente en scrapling/spiders/result.py
to_xml
¶
Exporta los elementos a un archivo XML.
Cada elemento se convierte en un nodo cuyos hijos usan sus claves como nombres. Si una clave no es un nombre XML válido, se adapta y se conserva el original en un atributo name. Los valores que no sean escalares, como listas o diccionarios anidados, se guardan como JSON.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
path
|
Ruta del archivo de salida. |
root_tag
|
Nombre del elemento que contiene todos los elementos.
TIPO:
|
item_tag
|
Nombre de la etiqueta que contiene cada elemento.
TIPO:
|
indent
|
Da al archivo un formato legible en lugar de escribirlo en una sola línea.
TIPO:
|
Código fuente en scrapling/spiders/result.py
Gestión de sesiones¶
scrapling.spiders.session.SessionManager
¶
Gestiona instancias de sesión ya configuradas.
Código fuente en scrapling/spiders/session.py
add
¶
Registra una instancia de sesión.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
session_id
|
Nombre que identifica esta sesión en las solicitudes.
TIPO:
|
session
|
Instancia de sesión que has configurado.
TIPO:
|
default
|
Si es True, esta pasa a ser la sesión predeterminada.
TIPO:
|
lazy
|
Si es True, la sesión se inicia solo cuando una solicitud usa su ID.
TIPO:
|
Código fuente en scrapling/spiders/session.py
remove
¶
Elimina una sesión.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
session_id
|
ID de la sesión que se quiere eliminar.
TIPO:
|
pop
¶
Elimina y devuelve una sesión.
| PARÁMETRO | DESCRIPCIÓN |
|---|---|
session_id
|
ID de la sesión que se quiere eliminar.
TIPO:
|
Código fuente en scrapling/spiders/session.py
get
¶
start
async
¶
Inicia todas las sesiones que aún no están activas.
Código fuente en scrapling/spiders/session.py
close
async
¶
Cierra todas las sesiones registradas.