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.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Las arañas pueden tener sus propias configuraciones que anulan las del proyecto usando el atributo custom_settings.

class DemoSpider(scrapy.Spider): 
   name = 'demo'  
   custom_settings = { 
      'SOME_SETTING': 'some value', 
   }
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 -

{  
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
	*/*;q=0.8', 'Accept-Language': 'en',  
}
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 -

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
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 -

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
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 -

{ 
   'scrapy.contracts.default.UrlContract' : 1, 
   'scrapy.contracts.default.ReturnsContract': 2, 
}
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 -

{ 
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 
}
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 .