2012-07-06 7 views
8

Estoy intentando configurar una clase de middleware de descarga personalizada en Scrapy. Sospecho que me he perdido algo obvio, pero he leído los documentos varias veces y no he encontrado soluciones. Me siento un poco frustrado con lo que debería ser una tarea extremadamente simple, así que espero que alguien me pueda dar alguna idea.No se puede definir middleware de descarga personalizada en Scrapy

He agregado la siguiente línea a mi archivo settings.py.

DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.TestDownloader': 400 } 

Después de agregar esa línea y ejecutar el proyecto, recibí un error sobre el módulo middlewares que no existía. Después de algunas investigaciones, descubrí que necesitabas agregar un archivo __init__.py a la carpeta middlewares para que Python lo reconozca. Lo hice, y ahora estoy recibiendo el siguiente error:

NameError: Module 'myproject.middlewares' doesn't define any object named 'TestDownloader' 

El archivo TestDownloader.py no se está compilando, mientras que todos los demás archivos .py * en el proyecto son. Si entiendo que mi Python está leyendo correctamente, eso significa que no se está importando en ninguna parte, pero no puedo cambiar la configuración de Scrapy para que funcione.

Respuesta

17
DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.TestDownloader': 400 } 

Para que esto funcione, crear el archivo middlewares.py dentro myproject carpeta, y en ese archivo de descarga poner su clase middleware llamado TestDownloader.

o tener middlewares carpeta con __init__.py en su interior, se puede poner poner su clase middleware descargador llamada TestDownloader dentro __init__.py - esto debería funcionar también.

+1

Sí, una solución extremadamente simple que nunca hubiera pensado. Gracias. – Jared

Cuestiones relacionadas