Scrapy - Настройки
Описание
Поведение компонентов Scrapy можно изменить с помощью настроек Scrapy. В настройках также можно выбрать проект Scrapy, который в настоящее время активен, если у вас несколько проектов Scrapy.
Назначение настроек
Вы должны уведомить Scrapy, какой параметр вы используете, когда вы сбрасываете веб-сайт. Для этого переменная окруженияSCRAPY_SETTINGS_MODULE следует использовать, и его значение должно быть в синтаксисе пути Python.
Заполнение настроек
В следующей таблице показаны некоторые механизмы, с помощью которых вы можете заполнить настройки.
Старший Нет | Механизм и описание |
---|---|
1 | Command line options Здесь переданные аргументы имеют наивысший приоритет, переопределяя другие параметры. -S используется для переопределения одного или нескольких параметров. |
2 | Settings per-spider У пауков могут быть свои собственные настройки, которые переопределяют настройки проекта с помощью атрибута custom_settings. |
3 | Project settings module Здесь вы можете заполнить свои собственные настройки, например добавить или изменить настройки в файле settings.py. |
4 | Default settings per-command Каждая команда инструмента Scrapy определяет свои собственные настройки в атрибуте default_settings, чтобы переопределить глобальные настройки по умолчанию. |
5 | Default global settings Эти настройки находятся в модуле scrapy.settings.default_settings. |
Настройки доступа
Они доступны через self.settings и устанавливаются в базовом пауке после его инициализации.
Следующий пример демонстрирует это.
class DemoSpider(scrapy.Spider):
name = 'demo'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
Чтобы использовать настройки перед инициализацией паука, вы должны переопределить метод from_crawler в методе _init_ () вашего паука. Вы можете получить доступ к настройкам через атрибут scrapy.crawler.Crawler.settings, переданный методу from_crawler .
Следующий пример демонстрирует это.
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'))
Обоснование установки имен
Имена настроек добавляются в качестве префикса к компоненту, который они настраивают. Например, для расширения robots.txt имена настроек могут быть ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR и т. Д.
Справочник по встроенным настройкам
В следующей таблице показаны встроенные настройки Scrapy -
Старший Нет | Настройка и описание |
---|---|
1 | AWS_ACCESS_KEY_ID Он используется для доступа к Amazon Web Services. Значение по умолчанию: Нет |
2 | AWS_SECRET_ACCESS_KEY Он используется для доступа к Amazon Web Services. Значение по умолчанию: Нет |
3 | BOT_NAME Это имя бота, которое можно использовать для создания User-Agent. Значение по умолчанию: scrapybot. |
4 | CONCURRENT_ITEMS Максимальное количество существующих элементов в обработчике элементов, используемых для параллельной обработки. Значение по умолчанию: 100 |
5 | CONCURRENT_REQUESTS Максимальное количество существующих запросов, которые выполняет загрузчик Scrapy. Значение по умолчанию: 16 |
6 | CONCURRENT_REQUESTS_PER_DOMAIN Максимальное количество существующих запросов, выполняемых одновременно для любого отдельного домена. Значение по умолчанию: 8 |
7 | CONCURRENT_REQUESTS_PER_IP Максимальное количество существующих запросов, которые одновременно выполняются на любой IP-адрес. Значение по умолчанию: 0 |
8 | DEFAULT_ITEM_CLASS Это класс, используемый для представления предметов. Значение по умолчанию: scrapy.item.Item. |
9 | DEFAULT_REQUEST_HEADERS Это заголовок по умолчанию, используемый для HTTP-запросов Scrapy. Значение по умолчанию - |
10 | DEPTH_LIMIT Максимальная глубина, на которую паук может пролезть любой сайт Значение по умолчанию: 0 |
11 | DEPTH_PRIORITY Это целое число, используемое для изменения приоритета запроса в зависимости от глубины. Значение по умолчанию: 0 |
12 | DEPTH_STATS В нем указано, нужно ли собирать статистику глубины. Значение по умолчанию: True |
13 | DEPTH_STATS_VERBOSE Если этот параметр включен, количество запросов собирается в статистике для каждой подробной глубины. Значение по умолчанию: False |
14 | DNSCACHE_ENABLED Он используется для включения DNS в кеш-памяти. Значение по умолчанию: True |
15 | DNSCACHE_SIZE Он определяет размер DNS в кеш-памяти. Значение по умолчанию: 10000 |
16 | DNS_TIMEOUT Он используется для установки тайм-аута для DNS для обработки запросов. Значение по умолчанию: 60 |
17 | DOWNLOADER Это загрузчик, используемый для процесса сканирования. Значение по умолчанию: scrapy.core.downloader.Downloader. |
18 | DOWNLOADER_MIDDLEWARES Это словарь, содержащий промежуточное программное обеспечение загрузчика и его заказы. Значение по умолчанию: {} |
19 | DOWNLOADER_MIDDLEWARES_BASE Это словарь, содержащий промежуточное ПО загрузчика, которое по умолчанию включено. Значение по умолчанию - |
20 | DOWNLOADER_STATS Этот параметр используется для включения статистики загрузчика. Значение по умолчанию: True |
21 год | DOWNLOAD_DELAY Он определяет общее время для загрузчика, прежде чем он загрузит страницы с сайта. Значение по умолчанию: 0 |
22 | DOWNLOAD_HANDLERS Это словарь с обработчиками загрузки. Значение по умолчанию: {} |
23 | DOWNLOAD_HANDLERS_BASE Это словарь с обработчиками загрузки, который включен по умолчанию. Значение по умолчанию - |
24 | DOWNLOAD_TIMEOUT Это общее время ожидания загрузчиком до истечения времени ожидания. Значение по умолчанию: 180 |
25 | DOWNLOAD_MAXSIZE Это максимальный размер ответа, который может загрузить загрузчик. Значение по умолчанию: 1073741824 (1024 МБ) |
26 | DOWNLOAD_WARNSIZE Он определяет размер ответа, который должен предупредить загрузчик. Значение по умолчанию: 33554432 (32 МБ) |
27 | DUPEFILTER_CLASS Это класс, используемый для обнаружения и фильтрации повторяющихся запросов. Значение по умолчанию: scrapy.dupefilters.RFPDupeFilter. |
28 | DUPEFILTER_DEBUG Если задано значение true, этот параметр регистрирует все повторяющиеся фильтры. Значение по умолчанию: False |
29 | EDITOR Он используется для редактирования пауков с помощью команды редактирования. Значение по умолчанию: зависит от среды. |
30 | EXTENSIONS Это словарь с расширениями, включенными в проекте. Значение по умолчанию: {} |
31 год | EXTENSIONS_BASE Это словарь со встроенными расширениями. Значение по умолчанию: {'scrapy.extensions.corestats.CoreStats': 0,}. |
32 | FEED_TEMPDIR Это каталог, используемый для установки настраиваемой папки, в которой могут храниться временные файлы искателя. |
33 | ITEM_PIPELINES Это словарь с конвейерами. Значение по умолчанию: {} |
34 | LOG_ENABLED Он определяет, должно ли быть включено ведение журнала. Значение по умолчанию: True |
35 год | LOG_ENCODING Он определяет тип кодировки, которая будет использоваться для ведения журнала. Значение по умолчанию: utf-8. |
36 | LOG_FILE Это имя файла, который будет использоваться для вывода журнала. Значение по умолчанию: Нет |
37 | LOG_FORMAT Это строка, с помощью которой можно форматировать сообщения журнала. Значение по умолчанию: '% (asctime) s [% (name) s]% (levelname) s:% (message) s » |
38 | LOG_DATEFORMAT Это строка, с помощью которой можно форматировать дату / время. Значение по умолчанию: '% Y-% m-% d% H:% M:% S' |
39 | LOG_LEVEL Он определяет минимальный уровень журнала. Значение по умолчанию: DEBUG. |
40 | LOG_STDOUT Если для этого параметра установлено значение true, весь вывод процесса будет отображаться в журнале. Значение по умолчанию: False |
41 год | MEMDEBUG_ENABLED Он определяет, должна ли быть включена отладка памяти. Значение по умолчанию: False |
42 | MEMDEBUG_NOTIFY Он определяет отчет о памяти, который отправляется на определенный адрес, когда включена отладка памяти. Значение по умолчанию: [] |
43 | MEMUSAGE_ENABLED Он определяет, следует ли включать использование памяти, когда процесс Scrapy превышает предел памяти. Значение по умолчанию: False |
44 | MEMUSAGE_LIMIT_MB Он определяет максимально допустимый предел памяти (в мегабайтах). Значение по умолчанию: 0 |
45 | MEMUSAGE_CHECK_INTERVAL_SECONDS Он используется для проверки текущего использования памяти путем установки длины интервалов. Значение по умолчанию: 60,0 |
46 | MEMUSAGE_NOTIFY_MAIL Он используется для уведомления со списком электронных писем, когда память достигает предела. Значение по умолчанию: False |
47 | MEMUSAGE_REPORT Он определяет, следует ли отправлять отчет об использовании памяти при закрытии каждого паука. Значение по умолчанию: False |
48 | MEMUSAGE_WARNING_MB Он определяет общий объем памяти, который должен быть разрешен до отправки предупреждения. Значение по умолчанию: 0 |
49 | NEWSPIDER_MODULE Это модуль, в котором новый паук создается с помощью команды genspider. Значение по умолчанию: '' |
50 | RANDOMIZE_DOWNLOAD_DELAY Он определяет случайное время ожидания Scrapy при загрузке запросов с сайта. Значение по умолчанию: True |
51 | REACTOR_THREADPOOL_MAXSIZE Он определяет максимальный размер катушки с резьбой в реакторе. Значение по умолчанию: 10 |
52 | REDIRECT_MAX_TIMES Он определяет, сколько раз запрос может быть перенаправлен. Значение по умолчанию: 20 |
53 | REDIRECT_PRIORITY_ADJUST Этот параметр, если он установлен, регулирует приоритет перенаправления запроса. Значение по умолчанию: +2 |
54 | RETRY_PRIORITY_ADJUST Этот параметр, если он установлен, регулирует приоритет повторных попыток запроса. Значение по умолчанию: -1 |
55 | ROBOTSTXT_OBEY Scrapy подчиняется политикам robots.txt, если установлено значение true . Значение по умолчанию: False |
56 | SCHEDULER Он определяет планировщик, который будет использоваться для сканирования. Значение по умолчанию: scrapy.core.scheduler.Scheduler. |
57 | SPIDER_CONTRACTS Это словарь в проекте, в котором есть контракты с пауками для тестирования пауков. Значение по умолчанию: {} |
58 | SPIDER_CONTRACTS_BASE Это словарь, содержащий контракты Scrapy, который по умолчанию включен в Scrapy. Значение по умолчанию - |
59 | SPIDER_LOADER_CLASS Он определяет класс, который реализует API SpiderLoader для загрузки пауков. Значение по умолчанию: scrapy.spiderloader.SpiderLoader. |
60 | SPIDER_MIDDLEWARES Это словарь, содержащий промежуточное ПО для пауков. Значение по умолчанию: {} |
61 | SPIDER_MIDDLEWARES_BASE Это словарь, содержащий промежуточное ПО для пауков, которое по умолчанию включено в Scrapy. Значение по умолчанию - |
62 | SPIDER_MODULES Это список модулей, содержащих пауков, которые будет искать Scrapy. Значение по умолчанию: [] |
63 | STATS_CLASS Это класс, который реализует API сборщика статистики для сбора статистики. Значение по умолчанию: scrapy.statscollectors.MemoryStatsCollector. |
64 | STATS_DUMP Если для этого параметра установлено значение true, статистика выгружается в журнал. Значение по умолчанию: True |
65 | STATSMAILER_RCPTS Как только пауки завершат очистку, Scrapy использует этот параметр для отправки статистики. Значение по умолчанию: [] |
66 | TELNETCONSOLE_ENABLED Он определяет, следует ли включать telnetconsole. Значение по умолчанию: True |
67 | TELNETCONSOLE_PORT Он определяет порт для консоли telnet. Значение по умолчанию: [6023, 6073] |
68 | TEMPLATES_DIR Это каталог, содержащий шаблоны, которые можно использовать при создании новых проектов. Значение по умолчанию: каталог шаблонов внутри модуля scrapy |
69 | URLLENGTH_LIMIT Он определяет максимальный предел длины URL, разрешенный для просканированных URL. Значение по умолчанию: 2083 |
70 | USER_AGENT Он определяет агент пользователя, который будет использоваться при сканировании сайта. Значение по умолчанию: «Scrapy / VERSION (+ http: //scrapy.org)». |
Для других настроек Scrapy перейдите по этой ссылке .