[Python-es] Fwd: Comando de scrapy para generar pipeline
Rolando Espinoza La Fuente
darkrho en gmail.com
Mie Mar 31 22:08:34 CEST 2010
2010/3/31 Olemis Lang (Simelix) <olemis+py en gmail.com>:
[...]
>
> Bueno, para ya aprovechar este hilo, quiero parametrizar un pipeline
> que utilice un ItemExporter .
>
> Q:
> - ¿Es posible reutilizar
> scrapy.contrib.pipeline.fileexport.FileExportPipeline ?
Según veo, el FileExportPipeline no soporta añadir exporters dinámicamente.
Pero es buena idea.
> - En caso positivo, ¿Cómo añado el nuevo exporter para que sea
> consistente con EXPORT_FILE | EXPORT_FORMAT ?
> - ¿Cómo logro leer, desde el exporter o el pipeline, otros settings que
> necesitaré ?
Si quieres seguir el api de los exporters, podrías extender un existente
o el scrapy.contrib.exporter.BaseItemExporter
Y luego hacer un pipeline similar al FileExport pero sólo para tu exporter.
Pero puedes irte directo por el camino del pipeline, algo como
# imports
class MyPipeline(object):
def __init__(self):
# initialize resources
self.file = open("items.dat", "w+")
dispatcher.connect(self.engine_stopped, signals.engine_stopped)
def process_item(self, spider, item):
# format line from item...
line = ",".join(item.values())
self.file.write(line + "\n")
return item
def engine_stopped(self):
# close resources and cleanup
self.file.close()
Sobre el settings, te refieres a algo como:
from scrapy.conf import settings
flag = settings.getbool('CUSTOM_FLAG')
value = settings.get('CUSTOM_VALUE', 'default_value')
Saludos
~Rolando
Más información sobre la lista de distribución Python-es