Scrapy - Configurações

Descrição

O comportamento dos componentes do Scrapy pode ser modificado usando as configurações do Scrapy. As configurações também podem selecionar o projeto Scrapy que está ativo no momento, caso você tenha vários projetos Scrapy.

Designando as configurações

Você deve notificar o Scrapy sobre a configuração que está usando quando você descarta um site. Para isso, a variável de ambienteSCRAPY_SETTINGS_MODULE deve ser usado e seu valor deve estar na sintaxe de caminho do Python.

Preenchendo as configurações

A tabela a seguir mostra alguns dos mecanismos pelos quais você pode preencher as configurações -

Sr. Não Mecanismo e descrição
1

Command line options

Aqui, os argumentos que são passados ​​têm maior precedência, substituindo outras opções. O -s é usado para substituir uma ou mais configurações.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Os spiders podem ter suas próprias configurações que substituem as do projeto usando o atributo custom_settings.

class DemoSpider(scrapy.Spider): 
   name = 'demo'  
   custom_settings = { 
      'SOME_SETTING': 'some value', 
   }
3

Project settings module

Aqui, você pode preencher suas configurações personalizadas, como adicionar ou modificar as configurações no arquivo settings.py.

4

Default settings per-command

Cada comando da ferramenta Scrapy define suas próprias configurações no atributo default_settings, para substituir as configurações padrão globais.

5

Default global settings

Essas configurações são encontradas no módulo scrapy.settings.default_settings.

Configurações de acesso

Eles estão disponíveis por meio de self.settings e definidos no spider de base após sua inicialização.

O exemplo a seguir demonstra isso.

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 as configurações antes de inicializar o spider, você deve sobrescrever o método from_crawler no método _init_ () do seu spider. Você pode acessar as configurações por meio do atributo scrapy.crawler.Crawler.settings passado para o método from_crawler .

O exemplo a seguir demonstra isso.

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'))

Justificativa para definir nomes

Os nomes das configurações são adicionados como um prefixo ao componente que eles configuram. Por exemplo, para a extensão robots.txt, os nomes das configurações podem ser ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR, etc.

Referência de configurações integradas

A tabela a seguir mostra as configurações integradas do Scrapy -

Sr. Não Configuração e descrição
1

AWS_ACCESS_KEY_ID

Ele é usado para acessar o Amazon Web Services.

Valor padrão: Nenhum

2

AWS_SECRET_ACCESS_KEY

Ele é usado para acessar o Amazon Web Services.

Valor padrão: Nenhum

3

BOT_NAME

É o nome do bot que pode ser usado para construir o User-Agent.

Valor padrão: 'scrapybot'

4

CONCURRENT_ITEMS

Número máximo de itens existentes no processador de itens usados ​​para processar paralelamente.

Valor padrão: 100

5

CONCURRENT_REQUESTS

Número máximo de solicitações existentes que o downloader Scrapy executa.

Valor padrão: 16

6

CONCURRENT_REQUESTS_PER_DOMAIN

Número máximo de solicitações existentes executadas simultaneamente para qualquer domínio único.

Valor padrão: 8

7

CONCURRENT_REQUESTS_PER_IP

Número máximo de solicitações existentes executadas simultaneamente para qualquer IP único.

Valor padrão: 0

8

DEFAULT_ITEM_CLASS

É uma classe usada para representar itens.

Valor padrão: 'scrapy.item.Item'

9

DEFAULT_REQUEST_HEADERS

É um cabeçalho padrão usado para solicitações HTTP de Scrapy.

Valor padrão -

{  
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
	*/*;q=0.8', 'Accept-Language': 'en',  
}
10

DEPTH_LIMIT

A profundidade máxima para uma aranha rastrear qualquer site.

Valor padrão: 0

11

DEPTH_PRIORITY

É um número inteiro usado para alterar a prioridade da solicitação de acordo com a profundidade.

Valor padrão: 0

12

DEPTH_STATS

Indica se deve coletar estatísticas de profundidade ou não.

Valor padrão: True

13

DEPTH_STATS_VERBOSE

Essa configuração, quando ativada, o número de solicitações é coletado nas estatísticas para cada profundidade detalhada.

Valor padrão: False

14

DNSCACHE_ENABLED

É usado para habilitar o DNS no cache de memória.

Valor padrão: True

15

DNSCACHE_SIZE

Ele define o tamanho do DNS no cache de memória.

Valor padrão: 10000

16

DNS_TIMEOUT

É usado para definir o tempo limite para o DNS processar as consultas.

Valor padrão: 60

17

DOWNLOADER

É um downloader usado para o processo de rastreamento.

Valor padrão: 'scrapy.core.downloader.Downloader'

18

DOWNLOADER_MIDDLEWARES

É um dicionário contendo o middleware downloader e seus pedidos.

Valor padrão: {}

19

DOWNLOADER_MIDDLEWARES_BASE

É um dicionário que contém o middleware do downloader que está habilitado por padrão.

Valor padrão -

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
20

DOWNLOADER_STATS

Esta configuração é usada para habilitar as estatísticas do downloader.

Valor padrão: True

21

DOWNLOAD_DELAY

Ele define o tempo total para o downloader antes de baixar as páginas do site.

Valor padrão: 0

22

DOWNLOAD_HANDLERS

É um dicionário com gerenciadores de download.

Valor padrão: {}

23

DOWNLOAD_HANDLERS_BASE

É um dicionário com manipuladores de download habilitados por padrão.

Valor padrão -

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
24

DOWNLOAD_TIMEOUT

É o tempo total para que o downloader espere antes de atingir o tempo limite.

Valor padrão: 180

25

DOWNLOAD_MAXSIZE

É o tamanho máximo de resposta para o downloader baixar.

Valor padrão: 1073741824 (1024 MB)

26

DOWNLOAD_WARNSIZE

Ele define o tamanho da resposta para o downloader avisar.

Valor padrão: 33554432 (32 MB)

27

DUPEFILTER_CLASS

É uma classe usada para detecção e filtragem de solicitações duplicadas.

Valor padrão: 'scrapy.dupefilters.RFPDupeFilter'

28

DUPEFILTER_DEBUG

Esta configuração registra todos os filtros duplicados quando definida como verdadeira.

Valor padrão: False

29

EDITOR

É usado para editar spiders usando o comando edit.

Valor padrão: Depende do ambiente

30

EXTENSIONS

É um dicionário com extensões habilitadas no projeto.

Valor padrão: {}

31

EXTENSIONS_BASE

É um dicionário com extensões integradas.

Valor padrão: {'scrapy.extensions.corestats.CoreStats': 0,}

32

FEED_TEMPDIR

É um diretório usado para definir a pasta personalizada onde os arquivos temporários do crawler podem ser armazenados.

33

ITEM_PIPELINES

É um dicionário com pipelines.

Valor padrão: {}

34

LOG_ENABLED

Ele define se o registro deve ser ativado.

Valor padrão: True

35

LOG_ENCODING

Ele define o tipo de codificação a ser usado para registro.

Valor padrão: 'utf-8'

36

LOG_FILE

É o nome do arquivo a ser usado para a saída do registro.

Valor padrão: Nenhum

37

LOG_FORMAT

É uma string com a qual as mensagens de log podem ser formatadas.

Valor padrão: '% (asctime) s [% (name) s]% (levelname) s:% (message) s'

38

LOG_DATEFORMAT

É uma string que usa a data / hora que pode ser formatada.

Valor padrão: '% Y-% m-% d% H:% M:% S'

39

LOG_LEVEL

Ele define o nível mínimo de log.

Valor padrão: 'DEBUG'

40

LOG_STDOUT

Se esta configuração for definida como verdadeira, toda a saída do seu processo aparecerá no log.

Valor padrão: False

41

MEMDEBUG_ENABLED

Ele define se a depuração de memória deve ser habilitada.

Valor padrão: falso

42

MEMDEBUG_NOTIFY

Ele define o relatório de memória que é enviado a um endereço específico quando a depuração de memória é ativada.

Valor padrão: []

43

MEMUSAGE_ENABLED

Ele define se o uso de memória deve ser ativado quando um processo Scrapy excede o limite de memória.

Valor padrão: False

44

MEMUSAGE_LIMIT_MB

Ele define o limite máximo para a memória (em megabytes) a ser permitida.

Valor padrão: 0

45

MEMUSAGE_CHECK_INTERVAL_SECONDS

É usado para verificar o uso atual da memória, definindo a duração dos intervalos.

Valor padrão: 60,0

46

MEMUSAGE_NOTIFY_MAIL

É utilizado para avisar com uma lista de emails quando a memória atinge o limite.

Valor padrão: False

47

MEMUSAGE_REPORT

Ele define se o relatório de uso de memória deve ser enviado ao fechar cada spider.

Valor padrão: False

48

MEMUSAGE_WARNING_MB

Ele define uma memória total a ser permitida antes que um aviso seja enviado.

Valor padrão: 0

49

NEWSPIDER_MODULE

É um módulo onde uma nova aranha é criada usando o comando genspider.

Valor padrão: ''

50

RANDOMIZE_DOWNLOAD_DELAY

Ele define uma quantidade aleatória de tempo para um Scrapy aguardar enquanto baixa as solicitações do site.

Valor padrão: True

51

REACTOR_THREADPOOL_MAXSIZE

Ele define um tamanho máximo para o threadpool do reator.

Valor padrão: 10

52

REDIRECT_MAX_TIMES

Ele define quantas vezes uma solicitação pode ser redirecionada.

Valor padrão: 20

53

REDIRECT_PRIORITY_ADJUST

Esta configuração, quando definida, ajusta a prioridade de redirecionamento de uma solicitação.

Valor padrão: +2

54

RETRY_PRIORITY_ADJUST

Esta configuração, quando definida, ajusta a prioridade de repetição de uma solicitação.

Valor padrão: -1

55

ROBOTSTXT_OBEY

O Scrapy obedece às políticas do robots.txt quando definido como verdadeiro .

Valor padrão: False

56

SCHEDULER

Ele define o planejador a ser usado para fins de rastreamento.

Valor padrão: 'scrapy.core.scheduler.Scheduler'

57

SPIDER_CONTRACTS

É um dicionário no projeto com contratos de aranha para testar as aranhas.

Valor padrão: {}

58

SPIDER_CONTRACTS_BASE

É um dicionário contendo contratos Scrapy, que está habilitado no Scrapy por padrão.

Valor padrão -

{ 
   'scrapy.contracts.default.UrlContract' : 1, 
   'scrapy.contracts.default.ReturnsContract': 2, 
}
59

SPIDER_LOADER_CLASS

Ele define uma classe que implementa a API SpiderLoader para carregar spiders.

Valor padrão: 'scrapy.spiderloader.SpiderLoader'

60

SPIDER_MIDDLEWARES

É um dicionário contendo middlewares de aranha.

Valor padrão: {}

61

SPIDER_MIDDLEWARES_BASE

É um dicionário contendo middlewares de aranha que estão habilitados no Scrapy por padrão.

Valor padrão -

{ 
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 
}
62

SPIDER_MODULES

É uma lista de módulos contendo spiders que o Scrapy irá procurar.

Valor padrão: []

63

STATS_CLASS

É uma classe que implementa a API Stats Collector para coletar estatísticas.

Valor padrão: 'scrapy.statscollectors.MemoryStatsCollector'

64

STATS_DUMP

Essa configuração, quando definida como verdadeira, despeja as estatísticas no log.

Valor padrão: True

65

STATSMAILER_RCPTS

Quando as aranhas terminam de raspar, Scrapy usa essa configuração para enviar as estatísticas.

Valor padrão: []

66

TELNETCONSOLE_ENABLED

Ele define se deve habilitar o telnetconsole.

Valor padrão: True

67

TELNETCONSOLE_PORT

Ele define uma porta para o console telnet.

Valor padrão: [6023, 6073]

68

TEMPLATES_DIR

É um diretório que contém modelos que podem ser usados ​​durante a criação de novos projetos.

Valor padrão: diretório de templates dentro do módulo scrapy

69

URLLENGTH_LIMIT

Ele define o limite máximo do comprimento do URL permitido para URLs rastreados.

Valor padrão: 2083

70

USER_AGENT

Ele define o agente do usuário a ser usado durante o rastreamento de um site.

Valor padrão: "Scrapy / VERSION (+ http: //scrapy.org)"

Para outras configurações do Scrapy, acesse este link .