Scrapy - Configuración
Descripción
El comportamiento de los componentes de Scrapy se puede modificar mediante la configuración de Scrapy. La configuración también puede seleccionar el proyecto Scrapy que está actualmente activo, en caso de que tenga varios proyectos Scrapy.
Designación de la configuración
Debe notificar a Scrapy qué configuración está utilizando cuando desecha un sitio web. Para esto, variable de entornoSCRAPY_SETTINGS_MODULE debe usarse y su valor debe estar en la sintaxis de ruta de Python.
Completando la configuración
La siguiente tabla muestra algunos de los mecanismos mediante los cuales puede completar la configuración:
No Señor | Mecanismo y descripción |
---|---|
1 | Command line options Aquí, los argumentos que se pasan tienen la mayor prioridad al anular otras opciones. La -s se usa para anular una o más configuraciones. |
2 | Settings per-spider Las arañas pueden tener sus propias configuraciones que anulan las del proyecto usando el atributo custom_settings. |
3 | Project settings module Aquí, puede completar su configuración personalizada, como agregar o modificar la configuración en el archivo settings.py. |
4 | Default settings per-command Cada comando de la herramienta Scrapy define su propia configuración en el atributo default_settings, para anular la configuración predeterminada global. |
5 | Default global settings Estas configuraciones se encuentran en el módulo scrapy.settings.default_settings. |
Configuración de acceso
Están disponibles a través de autoconfiguraciones y se establecen en la araña base después de que se inicializa.
El siguiente ejemplo demuestra esto.
class DemoSpider(scrapy.Spider):
name = 'demo'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
Para usar la configuración antes de inicializar la araña, debe anular el método from_crawler en el método _init_ () de su araña. Puede acceder a la configuración a través del atributo scrapy.crawler.Crawler.settings pasado al método from_crawler .
El siguiente ejemplo demuestra esto.
class MyExtension(object):
def __init__(self, log_is_enabled = False):
if log_is_enabled:
print("Enabled log")
@classmethod
def from_crawler(cls, crawler):
settings = crawler.settings
return cls(settings.getbool('LOG_ENABLED'))
Justificación para establecer nombres
Los nombres de configuración se agregan como prefijo al componente que configuran. Por ejemplo, para la extensión robots.txt, los nombres de configuración pueden ser ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR, etc.
Referencia de configuración incorporada
La siguiente tabla muestra la configuración incorporada de Scrapy:
No Señor | Configuración y descripción |
---|---|
1 | AWS_ACCESS_KEY_ID Se utiliza para acceder a los servicios web de Amazon. Valor predeterminado: ninguno |
2 | AWS_SECRET_ACCESS_KEY Se utiliza para acceder a los servicios web de Amazon. Valor predeterminado: ninguno |
3 | BOT_NAME Es el nombre del bot que se puede usar para construir User-Agent. Valor predeterminado: 'scrapybot' |
4 | CONCURRENT_ITEMS Número máximo de elementos existentes en el procesador de elementos utilizados para procesar en paralelo. Valor predeterminado: 100 |
5 | CONCURRENT_REQUESTS Número máximo de solicitudes existentes que realiza Scrapy Downloader. Valor predeterminado: 16 |
6 | CONCURRENT_REQUESTS_PER_DOMAIN Número máximo de solicitudes existentes que se realizan simultáneamente para cualquier dominio. Valor predeterminado: 8 |
7 | CONCURRENT_REQUESTS_PER_IP Número máximo de solicitudes existentes que se realizan simultáneamente a una única IP. Valor predeterminado: 0 |
8 | DEFAULT_ITEM_CLASS Es una clase que se usa para representar elementos. Valor predeterminado: 'scrapy.item.Item' |
9 | DEFAULT_REQUEST_HEADERS Es un encabezado predeterminado utilizado para solicitudes HTTP de Scrapy. Valor predeterminado - |
10 | DEPTH_LIMIT La profundidad máxima para que una araña se arrastre por cualquier sitio. Valor predeterminado: 0 |
11 | DEPTH_PRIORITY Es un número entero que se utiliza para alterar la prioridad de la solicitud según la profundidad. Valor predeterminado: 0 |
12 | DEPTH_STATS Indica si se deben recopilar estadísticas de profundidad o no. Valor predeterminado: verdadero |
13 | DEPTH_STATS_VERBOSE Esta configuración cuando está habilitada, el número de solicitudes se recopila en estadísticas para cada nivel detallado. Valor predeterminado: falso |
14 | DNSCACHE_ENABLED Se utiliza para habilitar DNS en la memoria caché. Valor predeterminado: verdadero |
15 | DNSCACHE_SIZE Define el tamaño de DNS en la memoria caché. Valor predeterminado: 10000 |
dieciséis | DNS_TIMEOUT Se utiliza para establecer el tiempo de espera para que DNS procese las consultas. Valor predeterminado: 60 |
17 | DOWNLOADER Es un descargador que se utiliza para el proceso de rastreo. Valor predeterminado: 'scrapy.core.downloader.Downloader' |
18 | DOWNLOADER_MIDDLEWARES Es un diccionario que contiene middleware de descarga y sus órdenes. Valor por defecto: {} |
19 | DOWNLOADER_MIDDLEWARES_BASE Es un diccionario que contiene middleware de descarga que está habilitado de forma predeterminada. Valor predeterminado - |
20 | DOWNLOADER_STATS Esta configuración se utiliza para habilitar las estadísticas del descargador. Valor predeterminado: verdadero |
21 | DOWNLOAD_DELAY Define el tiempo total para el descargador antes de descargar las páginas del sitio. Valor predeterminado: 0 |
22 | DOWNLOAD_HANDLERS Es un diccionario con controladores de descarga. Valor por defecto: {} |
23 | DOWNLOAD_HANDLERS_BASE Es un diccionario con controladores de descarga que está habilitado por defecto. Valor predeterminado - |
24 | DOWNLOAD_TIMEOUT Es el tiempo total que debe esperar el descargador antes de que se agote el tiempo de espera. Valor predeterminado: 180 |
25 | DOWNLOAD_MAXSIZE Es el tamaño máximo de respuesta que puede descargar el descargador. Valor predeterminado: 1073741824 (1024 MB) |
26 | DOWNLOAD_WARNSIZE Define el tamaño de la respuesta para que advierta el descargador. Valor predeterminado: 33554432 (32 MB) |
27 | DUPEFILTER_CLASS Es una clase utilizada para detectar y filtrar solicitudes duplicadas. Valor predeterminado: 'scrapy.dupefilters.RFPDupeFilter' |
28 | DUPEFILTER_DEBUG Esta configuración registra todos los filtros duplicados cuando se establece en verdadero. Valor predeterminado: falso |
29 | EDITOR Se usa para editar arañas usando el comando editar. Valor predeterminado: depende del entorno |
30 | EXTENSIONS Es un diccionario que tiene extensiones que están habilitadas en el proyecto. Valor por defecto: {} |
31 | EXTENSIONS_BASE Es un diccionario que tiene extensiones integradas. Valor predeterminado: {'scrapy.extensions.corestats.CoreStats': 0,} |
32 | FEED_TEMPDIR Es un directorio que se utiliza para configurar la carpeta personalizada donde se pueden almacenar los archivos temporales del rastreador. |
33 | ITEM_PIPELINES Es un diccionario que tiene pipelines. Valor por defecto: {} |
34 | LOG_ENABLED Define si se habilitará el registro. Valor predeterminado: verdadero |
35 | LOG_ENCODING Define el tipo de codificación que se utilizará para el registro. Valor predeterminado: 'utf-8' |
36 | LOG_FILE Es el nombre del archivo que se utilizará para la salida del registro. Valor predeterminado: ninguno |
37 | LOG_FORMAT Es una cadena con la que se pueden formatear los mensajes de registro. Valor predeterminado: '% (asctime) s [% (name) s]% (levelname) s:% (message) s' |
38 | LOG_DATEFORMAT Es una cadena con la que se puede formatear la fecha / hora. Valor predeterminado: '% Y-% m-% d% H:% M:% S' |
39 | LOG_LEVEL Define el nivel mínimo de registro. Valor predeterminado: 'DEBUG' |
40 | LOG_STDOUT Si esta configuración se establece en verdadero, toda la salida de su proceso aparecerá en el registro. Valor predeterminado: falso |
41 | MEMDEBUG_ENABLED Define si se debe habilitar la depuración de memoria. Valor predeterminado: falso |
42 | MEMDEBUG_NOTIFY Define el informe de memoria que se envía a una dirección particular cuando la depuración de memoria está habilitada. Valor por defecto: [] |
43 | MEMUSAGE_ENABLED Define si el uso de la memoria debe habilitarse cuando un proceso Scrapy excede un límite de memoria. Valor predeterminado: falso |
44 | MEMUSAGE_LIMIT_MB Define el límite máximo permitido de memoria (en megabytes). Valor predeterminado: 0 |
45 | MEMUSAGE_CHECK_INTERVAL_SECONDS Se utiliza para comprobar el uso actual de la memoria estableciendo la duración de los intervalos. Valor predeterminado: 60.0 |
46 | MEMUSAGE_NOTIFY_MAIL Se utiliza para notificar con una lista de correos electrónicos cuando la memoria alcanza el límite. Valor predeterminado: falso |
47 | MEMUSAGE_REPORT Define si el informe de uso de memoria se enviará al cerrar cada araña. Valor predeterminado: falso |
48 | MEMUSAGE_WARNING_MB Define una memoria total que se permitirá antes de que se envíe una advertencia. Valor predeterminado: 0 |
49 | NEWSPIDER_MODULE Es un módulo donde se crea una nueva araña usando el comando genspider. Valor por defecto: '' |
50 | RANDOMIZE_DOWNLOAD_DELAY Define una cantidad de tiempo aleatoria para que Scrapy espere mientras descarga las solicitudes del sitio. Valor predeterminado: verdadero |
51 | REACTOR_THREADPOOL_MAXSIZE Define un tamaño máximo para la agrupación de hilos del reactor. Valor predeterminado: 10 |
52 | REDIRECT_MAX_TIMES Define cuántas veces se puede redireccionar una solicitud. Valor predeterminado: 20 |
53 | REDIRECT_PRIORITY_ADJUST Esta configuración, cuando se establece, ajusta la prioridad de redireccionamiento de una solicitud. Valor predeterminado: +2 |
54 | RETRY_PRIORITY_ADJUST Esta configuración, cuando se establece, ajusta la prioridad de reintento de una solicitud. Valor predeterminado: -1 |
55 | ROBOTSTXT_OBEY Scrapy obedece las políticas de robots.txt cuando se establece en verdadero . Valor predeterminado: falso |
56 | SCHEDULER Define el planificador que se utilizará para el rastreo. Valor predeterminado: 'scrapy.core.scheduler.Scheduler' |
57 | SPIDER_CONTRACTS Es un diccionario en el proyecto que tiene contratos de arañas para probar las arañas. Valor por defecto: {} |
58 | SPIDER_CONTRACTS_BASE Es un diccionario que contiene contratos Scrapy que está habilitado en Scrapy por defecto. Valor predeterminado - |
59 | SPIDER_LOADER_CLASS Define una clase que implementa la API SpiderLoader para cargar arañas. Valor predeterminado: 'scrapy.spiderloader.SpiderLoader' |
60 | SPIDER_MIDDLEWARES Es un diccionario que contiene middlewares de araña. Valor por defecto: {} |
61 | SPIDER_MIDDLEWARES_BASE Es un diccionario que contiene middlewares araña que está habilitado en Scrapy de forma predeterminada. Valor predeterminado - |
62 | SPIDER_MODULES Es una lista de módulos que contienen arañas que Scrapy buscará. Valor por defecto: [] |
63 | STATS_CLASS Es una clase que implementa Estadísticas colector API para las estadísticas de cobro revertido. Valor predeterminado: 'scrapy.statscollectors.MemoryStatsCollector' |
64 | STATS_DUMP Esta configuración cuando se establece en verdadero, vuelca las estadísticas en el registro. Valor predeterminado: verdadero |
sesenta y cinco | STATSMAILER_RCPTS Una vez que las arañas terminan de raspar, Scrapy usa esta configuración para enviar las estadísticas. Valor por defecto: [] |
66 | TELNETCONSOLE_ENABLED Define si habilitar telnetconsole. Valor predeterminado: verdadero |
67 | TELNETCONSOLE_PORT Define un puerto para la consola telnet. Valor predeterminado: [6023, 6073] |
68 | TEMPLATES_DIR Es un directorio que contiene plantillas que se pueden utilizar al crear nuevos proyectos. Valor predeterminado: directorio de plantillas dentro del módulo scrapy |
69 | URLLENGTH_LIMIT Define el límite máximo de longitud de la URL que se permitirá para las URL rastreadas. Valor predeterminado: 2083 |
70 | USER_AGENT Define el agente de usuario que se utilizará al rastrear un sitio. Valor predeterminado: "Scrapy / VERSION (+ http: //scrapy.org)" |
Para otras configuraciones de Scrapy, vaya a este enlace .