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. |
2 | Settings per-spider Les araignées peuvent avoir leurs propres paramètres qui remplacent ceux du projet en utilisant l'attribut custom_settings. |
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 - |
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 - |
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 - |
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 - |
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 - |
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 .