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. |
2 | Settings per-spider Os spiders podem ter suas próprias configurações que substituem as do projeto usando o atributo custom_settings. |
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 - |
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 - |
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 - |
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 - |
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 - |
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 .