Scrapy - Paramètres

La description

Le comportement des composants Scrapy peut être modifié à l'aide des paramètres Scrapy. Les paramètres peuvent également sélectionner le projet Scrapy actuellement actif, au cas où vous auriez plusieurs projets Scrapy.

Désignation des paramètres

Vous devez informer Scrapy du paramètre que vous utilisez lorsque vous supprimez un site Web. Pour cela, variable d'environnementSCRAPY_SETTINGS_MODULE doit être utilisé et sa valeur doit être dans la syntaxe de chemin Python.

Remplir les paramètres

Le tableau suivant montre certains des mécanismes par lesquels vous pouvez renseigner les paramètres -

Sr. Non Mécanisme et description
1

Command line options

Ici, les arguments passés ont la priorité la plus élevée en remplaçant les autres options. Le -s est utilisé pour remplacer un ou plusieurs paramètres.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Les araignées peuvent avoir leurs propres paramètres qui remplacent ceux du projet en utilisant l'attribut custom_settings.

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

Project settings module

Ici, vous pouvez renseigner vos paramètres personnalisés tels que l'ajout ou la modification des paramètres dans le fichier settings.py.

4

Default settings per-command

Chaque commande de l'outil Scrapy définit ses propres paramètres dans l'attribut default_settings, pour remplacer les paramètres par défaut globaux.

5

Default global settings

Ces paramètres se trouvent dans le module scrapy.settings.default_settings.

Paramètres d'accès

Ils sont disponibles via self.settings et définis dans l'araignée de base après son initialisation.

L'exemple suivant illustre cela.

class DemoSpider(scrapy.Spider): 
   name = 'demo' 
   start_urls = ['http://example.com']  
   def parse(self, response): 
      print("Existing settings: %s" % self.settings.attributes.keys())

Pour utiliser les paramètres avant d'initialiser l'araignée, vous devez remplacer la méthode from_crawler dans la méthode _init_ () de votre spider. Vous pouvez accéder aux paramètres via l'attribut scrapy.crawler.Crawler.settings transmis à la méthode from_crawler .

L'exemple suivant illustre cela.

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

Justification de la définition des noms

Les noms de paramètres sont ajoutés en tant que préfixe au composant qu'ils configurent. Par exemple, pour l'extension robots.txt, les noms des paramètres peuvent être ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR, etc.

Référence des paramètres intégrés

Le tableau suivant montre les paramètres intégrés de Scrapy -

Sr. Non Réglage et description
1

AWS_ACCESS_KEY_ID

Il est utilisé pour accéder à Amazon Web Services.

Valeur par défaut: aucune

2

AWS_SECRET_ACCESS_KEY

Il est utilisé pour accéder à Amazon Web Services.

Valeur par défaut: aucune

3

BOT_NAME

C'est le nom du bot qui peut être utilisé pour construire User-Agent.

Valeur par défaut: 'scrapybot'

4

CONCURRENT_ITEMS

Nombre maximum d'éléments existants dans le processeur d'éléments utilisés pour traiter en parallèle.

Valeur par défaut: 100

5

CONCURRENT_REQUESTS

Nombre maximum de requêtes existantes effectuées par le téléchargeur Scrapy.

Valeur par défaut: 16

6

CONCURRENT_REQUESTS_PER_DOMAIN

Nombre maximum de demandes existantes qui s'exécutent simultanément pour un seul domaine.

Valeur par défaut: 8

sept

CONCURRENT_REQUESTS_PER_IP

Nombre maximum de requêtes existantes qui s'exécutent simultanément sur une seule adresse IP.

Valeur par défaut: 0

8

DEFAULT_ITEM_CLASS

C'est une classe utilisée pour représenter des éléments.

Valeur par défaut: 'scrapy.item.Item'

9

DEFAULT_REQUEST_HEADERS

C'est un en-tête par défaut utilisé pour les requêtes HTTP de Scrapy.

Valeur par défaut -

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

DEPTH_LIMIT

La profondeur maximale pour qu'une araignée explore n'importe quel site.

Valeur par défaut: 0

11

DEPTH_PRIORITY

C'est un entier utilisé pour modifier la priorité de la requête en fonction de la profondeur.

Valeur par défaut: 0

12

DEPTH_STATS

Il indique s'il faut collecter des statistiques de profondeur ou non.

Valeur par défaut: True

13

DEPTH_STATS_VERBOSE

Ce paramètre lorsqu'il est activé, le nombre de demandes est collecté dans les statistiques pour chaque profondeur détaillée.

Valeur par défaut: False

14

DNSCACHE_ENABLED

Il est utilisé pour activer DNS dans le cache mémoire.

Valeur par défaut: True

15

DNSCACHE_SIZE

Il définit la taille du DNS dans le cache mémoire.

Valeur par défaut: 10000

16

DNS_TIMEOUT

Il est utilisé pour définir le délai d'expiration du DNS pour traiter les requêtes.

Valeur par défaut: 60

17

DOWNLOADER

Il s'agit d'un téléchargeur utilisé pour le processus d'exploration.

Valeur par défaut: 'scrapy.core.downloader.Downloader'

18

DOWNLOADER_MIDDLEWARES

C'est un dictionnaire contenant le middleware de téléchargement et leurs commandes.

Valeur par défaut: {}

19

DOWNLOADER_MIDDLEWARES_BASE

Il s'agit d'un dictionnaire contenant un middleware de téléchargement qui est activé par défaut.

Valeur par défaut -

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

DOWNLOADER_STATS

Ce paramètre est utilisé pour activer les statistiques du téléchargeur.

Valeur par défaut: True

21

DOWNLOAD_DELAY

Il définit la durée totale du téléchargeur avant de télécharger les pages du site.

Valeur par défaut: 0

22

DOWNLOAD_HANDLERS

C'est un dictionnaire avec des gestionnaires de téléchargement.

Valeur par défaut: {}

23

DOWNLOAD_HANDLERS_BASE

C'est un dictionnaire avec des gestionnaires de téléchargement qui est activé par défaut.

Valeur par défaut -

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

DOWNLOAD_TIMEOUT

C'est le temps total que le téléchargeur doit attendre avant d'expirer.

Valeur par défaut: 180

25

DOWNLOAD_MAXSIZE

Il s'agit de la taille maximale de réponse à télécharger par le téléchargeur.

Valeur par défaut: 1073741824 (1024 Mo)

26

DOWNLOAD_WARNSIZE

Il définit la taille de la réponse que le téléchargeur doit avertir.

Valeur par défaut: 33554432 (32 Mo)

27

DUPEFILTER_CLASS

C'est une classe utilisée pour détecter et filtrer les demandes en double.

Valeur par défaut: 'scrapy.dupefilters.RFPDupeFilter'

28

DUPEFILTER_DEBUG

Ce paramètre enregistre tous les filtres en double lorsqu'il est défini sur true.

Valeur par défaut: False

29

EDITOR

Il est utilisé pour éditer les araignées en utilisant la commande d'édition.

Valeur par défaut: dépend de l'environnement

30

EXTENSIONS

C'est un dictionnaire dont les extensions sont activées dans le projet.

Valeur par défaut: {}

31

EXTENSIONS_BASE

C'est un dictionnaire avec des extensions intégrées.

Valeur par défaut: {'scrapy.extensions.corestats.CoreStats': 0,}

32

FEED_TEMPDIR

Il s'agit d'un répertoire utilisé pour définir le dossier personnalisé dans lequel les fichiers temporaires du robot peuvent être stockés.

33

ITEM_PIPELINES

C'est un dictionnaire avec des pipelines.

Valeur par défaut: {}

34

LOG_ENABLED

Il définit si la journalisation doit être activée.

Valeur par défaut: True

35

LOG_ENCODING

Il définit le type de codage à utiliser pour la journalisation.

Valeur par défaut: 'utf-8'

36

LOG_FILE

C'est le nom du fichier à utiliser pour la sortie de la journalisation.

Valeur par défaut: aucune

37

LOG_FORMAT

C'est une chaîne à l'aide de laquelle les messages du journal peuvent être formatés.

Valeur par défaut: '% (asctime) s [% (name) s]% (levelname) s:% (message) s'

38

LOG_DATEFORMAT

C'est une chaîne utilisant quelle date / heure peut être formatée.

Valeur par défaut: '% Y-% m-% d% H:% M:% S'

39

LOG_LEVEL

Il définit le niveau de journalisation minimum.

Valeur par défaut: 'DEBUG'

40

LOG_STDOUT

Ce paramètre s'il est défini sur true, toute la sortie de votre processus apparaîtra dans le journal.

Valeur par défaut: False

41

MEMDEBUG_ENABLED

Il définit si le débogage de la mémoire doit être activé.

Valeur par défaut: False

42

MEMDEBUG_NOTIFY

Il définit le rapport de mémoire qui est envoyé à une adresse particulière lorsque le débogage de la mémoire est activé.

Valeur par défaut: []

43

MEMUSAGE_ENABLED

Il définit si l'utilisation de la mémoire doit être activée lorsqu'un processus Scrapy dépasse une limite de mémoire.

Valeur par défaut: False

44

MEMUSAGE_LIMIT_MB

Il définit la limite maximale de mémoire (en mégaoctets) à autoriser.

Valeur par défaut: 0

45

MEMUSAGE_CHECK_INTERVAL_SECONDS

Il est utilisé pour vérifier l'utilisation actuelle de la mémoire en définissant la longueur des intervalles.

Valeur par défaut: 60,0

46

MEMUSAGE_NOTIFY_MAIL

Il est utilisé pour notifier avec une liste de courriels lorsque la mémoire atteint la limite.

Valeur par défaut: False

47

MEMUSAGE_REPORT

Il définit si le rapport d'utilisation de la mémoire doit être envoyé à la fermeture de chaque spider.

Valeur par défaut: False

48

MEMUSAGE_WARNING_MB

Il définit une mémoire totale à autoriser avant l'envoi d'un avertissement.

Valeur par défaut: 0

49

NEWSPIDER_MODULE

C'est un module dans lequel un nouveau spider est créé à l'aide de la commande genspider.

Valeur par défaut: ''

50

RANDOMIZE_DOWNLOAD_DELAY

Il définit une durée aléatoire pendant laquelle un Scrapy attend pendant le téléchargement des requêtes depuis le site.

Valeur par défaut: True

51

REACTOR_THREADPOOL_MAXSIZE

Il définit une taille maximale pour le threadpool du réacteur.

Valeur par défaut: 10

52

REDIRECT_MAX_TIMES

Il définit combien de fois une requête peut être redirigée.

Valeur par défaut: 20

53

REDIRECT_PRIORITY_ADJUST

Ce paramètre, lorsqu'il est défini, ajuste la priorité de redirection d'une demande.

Valeur par défaut: +2

54

RETRY_PRIORITY_ADJUST

Ce paramètre, lorsqu'il est défini, ajuste la priorité de nouvelle tentative d'une demande.

Valeur par défaut: -1

55

ROBOTSTXT_OBEY

Scrapy obéit aux règles du fichier robots.txt lorsqu'il est défini sur true .

Valeur par défaut: False

56

SCHEDULER

Il définit le planificateur à utiliser à des fins d'analyse.

Valeur par défaut: 'scrapy.core.scheduler.Scheduler'

57

SPIDER_CONTRACTS

C'est un dictionnaire dans le projet ayant des contrats d'araignées pour tester les araignées.

Valeur par défaut: {}

58

SPIDER_CONTRACTS_BASE

C'est un dictionnaire contenant des contrats Scrapy qui est activé par défaut dans Scrapy.

Valeur par défaut -

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

SPIDER_LOADER_CLASS

Il définit une classe qui implémente l' API SpiderLoader pour charger les spiders.

Valeur par défaut: 'scrapy.spiderloader.SpiderLoader'

60

SPIDER_MIDDLEWARES

C'est un dictionnaire contenant des middlewares d'araignée.

Valeur par défaut: {}

61

SPIDER_MIDDLEWARES_BASE

C'est un dictionnaire contenant des middlewares d'araignée qui est activé par défaut dans Scrapy.

Valeur par défaut -

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

SPIDER_MODULES

C'est une liste de modules contenant des araignées que Scrapy recherchera.

Valeur par défaut: []

63

STATS_CLASS

C'est une classe qui implémente l' API Stats Collector pour collecter des statistiques.

Valeur par défaut: 'scrapy.statscollectors.MemoryStatsCollector'

64

STATS_DUMP

Ce paramètre, lorsqu'il est défini sur true, vide les statistiques dans le journal.

Valeur par défaut: True

65

STATSMAILER_RCPTS

Une fois que les araignées ont fini de gratter, Scrapy utilise ce paramètre pour envoyer les statistiques.

Valeur par défaut: []

66

TELNETCONSOLE_ENABLED

Il définit s'il faut activer la console telnet.

Valeur par défaut: True

67

TELNETCONSOLE_PORT

Il définit un port pour la console telnet.

Valeur par défaut: [6023, 6073]

68

TEMPLATES_DIR

C'est un répertoire contenant des modèles qui peuvent être utilisés lors de la création de nouveaux projets.

Valeur par défaut: répertoire des modèles dans le module scrapy

69

URLLENGTH_LIMIT

Il définit la limite maximale de longueur d'URL à autoriser pour les URL explorées.

Valeur par défaut: 2083

70

USER_AGENT

Il définit l'agent utilisateur à utiliser lors de l'exploration d'un site.

Valeur par défaut: "Scrapy / VERSION (+ http: //scrapy.org)"

Pour les autres paramètres Scrapy, accédez à ce lien .