Поведение компонентов Scrapy можно изменить с помощью настроек Scrapy. В настройках также можно выбрать проект Scrapy, который в данный момент активен, если у вас есть несколько проектов Scrapy.
Назначение настроек
Вы должны уведомить Scrapy, какие настройки вы используете, когда вы удаляете сайт. Для этого следует использовать переменную окружения SCRAPY_SETTINGS_MODULE , а ее значение должно соответствовать синтаксису пути Python.
Заполнение настроек
В следующей таблице приведены некоторые механизмы, с помощью которых вы можете заполнить настройки —
Sr.No | Механизм и описание |
---|---|
1 |
Параметры командной строки Здесь переданные аргументы имеют наивысший приоритет, переопределяя другие параметры. -S используется для переопределения одного или нескольких параметров. scrapy crawl myspider -s LOG_FILE = scrapy.log |
2 |
Настройки на паука Пауки могут иметь свои собственные настройки, которые переопределяют настройки проекта, используя атрибут custom_settings. class DemoSpider(scrapy.Spider): name = 'demo' custom_settings = { 'SOME_SETTING': 'some value', } |
3 |
Модуль настроек проекта Здесь вы можете заполнить свои пользовательские настройки, такие как добавление или изменение настроек в файле settings.py. |
4 |
Настройки по умолчанию для каждой команды Каждая команда инструмента Scrapy определяет свои собственные настройки в атрибуте default_settings, чтобы переопределить глобальные настройки по умолчанию. |
5 |
Глобальные настройки по умолчанию Эти настройки находятся в модуле scrapy.settings.default_settings. |
Параметры командной строки
Здесь переданные аргументы имеют наивысший приоритет, переопределяя другие параметры. -S используется для переопределения одного или нескольких параметров.
Настройки на паука
Пауки могут иметь свои собственные настройки, которые переопределяют настройки проекта, используя атрибут custom_settings.
Модуль настроек проекта
Здесь вы можете заполнить свои пользовательские настройки, такие как добавление или изменение настроек в файле settings.py.
Настройки по умолчанию для каждой команды
Каждая команда инструмента Scrapy определяет свои собственные настройки в атрибуте default_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 —
Sr.No | Настройка и описание |
---|---|
1 |
AWS_ACCESS_KEY_ID Он используется для доступа к веб-сервисам Amazon. Значение по умолчанию: Нет |
2 |
AWS_SECRET_ACCESS_KEY Он используется для доступа к веб-сервисам Amazon. Значение по умолчанию: Нет |
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. Значение по умолчанию — { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', } |
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 Это словарь, содержащий промежуточное ПО загрузчика, которое включено по умолчанию. Значение по умолчанию — { 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, } |
20 |
DOWNLOADER_STATS Этот параметр используется для включения статистики загрузчика. Значение по умолчанию: True |
21 |
DOWNLOAD_DELAY Он определяет общее время загрузки до загрузки страниц с сайта. Значение по умолчанию: 0 |
22 |
DOWNLOAD_HANDLERS Это словарь с обработчиками загрузки. Значение по умолчанию: {} |
23 |
DOWNLOAD_HANDLERS_BASE Это словарь с обработчиками загрузки, который включен по умолчанию. Значение по умолчанию — { 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', } |
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 |
РЕДАКТОР Он используется для редактирования пауков с помощью команды редактирования. Значение по умолчанию: зависит от среды |
30 |
РАСШИРЕНИЯ Это словарь с расширениями, которые включены в проект. Значение по умолчанию: {} |
31 |
EXTENSIONS_BASE Это словарь, имеющий встроенные расширения. Значение по умолчанию: {‘scrapy.extensions.corestats.CoreStats’: 0,} |
32 |
FEED_TEMPDIR Это каталог, используемый для установки пользовательской папки, в которой могут храниться временные файлы искателя. |
33 |
ITEM_PIPELINES Это словарь с конвейерами. Значение по умолчанию: {} |
34 |
LOG_ENABLED Он определяет, должно ли быть включено ведение журнала. Значение по умолчанию: True |
35 |
LOG_ENCODING Он определяет тип кодирования, который будет использоваться для регистрации. Значение по умолчанию: ‘utf-8’ |
36 |
ЖУРНАЛЬНЫЙ ФАЙЛ Это имя файла, который будет использоваться для вывода журнала. Значение по умолчанию: Нет |
37 |
LOG_FORMAT Это строка, с помощью которой сообщения журнала могут быть отформатированы. Значение по умолчанию: ‘% (asctime) s [% (имя) s]% (имя уровня) s:% (сообщение) 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 по умолчанию. Значение по умолчанию — { 'scrapy.contracts.default.UrlContract' : 1, 'scrapy.contracts.default.ReturnsContract': 2, } |
59 |
SPIDER_LOADER_CLASS Он определяет класс, который реализует API SpiderLoader для загрузки пауков. Значение по умолчанию: «scrapy.spiderloader.SpiderLoader» |
60 |
SPIDER_MIDDLEWARES Это словарь, содержащий промежуточное программное обеспечение для пауков. Значение по умолчанию: {} |
61 |
SPIDER_MIDDLEWARES_BASE Это словарь, содержащий промежуточное программное обеспечение для пауков, которое по умолчанию включено в Scrapy. Значение по умолчанию — { 'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, } |
62 |
SPIDER_MODULES Это список модулей, содержащих пауков, которые Scrapy будет искать. Значение по умолчанию: [] |
63 |
STATS_CLASS Это класс, который реализует API Stats Collector для сбора статистики. Значение по умолчанию: ‘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)» |
AWS_ACCESS_KEY_ID
Он используется для доступа к веб-сервисам Amazon.
Значение по умолчанию: Нет
AWS_SECRET_ACCESS_KEY
Он используется для доступа к веб-сервисам Amazon.
Значение по умолчанию: Нет
BOT_NAME
Это имя бота, которое можно использовать для создания User-Agent.
Значение по умолчанию: ‘scrapybot’
CONCURRENT_ITEMS
Максимальное количество существующих элементов в процессоре элементов, используемое для параллельной обработки.
Значение по умолчанию: 100
CONCURRENT_REQUESTS
Максимальное количество существующих запросов, которые выполняет загрузчик Scrapy.
Значение по умолчанию: 16
CONCURRENT_REQUESTS_PER_DOMAIN
Максимальное количество существующих запросов, которые выполняются одновременно для любого отдельного домена.
Значение по умолчанию: 8
CONCURRENT_REQUESTS_PER_IP
Максимальное количество существующих запросов, выполняемых одновременно к любому отдельному IP.
Значение по умолчанию: 0
DEFAULT_ITEM_CLASS
Это класс, используемый для представления предметов.
Значение по умолчанию: ‘scrapy.item.Item’
DEFAULT_REQUEST_HEADERS
Это заголовок по умолчанию, используемый для HTTP-запросов Scrapy.
Значение по умолчанию —
DEPTH_LIMIT
Максимальная глубина для паука, чтобы сканировать любой сайт.
Значение по умолчанию: 0
DEPTH_PRIORITY
Это целое число, используемое для изменения приоритета запроса в соответствии с глубиной.
Значение по умолчанию: 0
DEPTH_STATS
Здесь указывается, собирать ли статистику глубины или нет.
Значение по умолчанию: True
DEPTH_STATS_VERBOSE
При включении этого параметра количество запросов собирается в статистике для каждой подробной глубины.
Значение по умолчанию: False
DNSCACHE_ENABLED
Используется для включения DNS в кеш-памяти.
Значение по умолчанию: True
DNSCACHE_SIZE
Он определяет размер DNS в кеше памяти.
Значение по умолчанию: 10000
DNS_TIMEOUT
Он используется для установки времени ожидания DNS для обработки запросов.
Значение по умолчанию: 60
DOWNLOADER
Это загрузчик, используемый для процесса сканирования.
Значение по умолчанию: ‘scrapy.core.downloader.Downloader’
DOWNLOADER_MIDDLEWARES
Это словарь, содержащий загрузчик промежуточного ПО и его заказы.
Значение по умолчанию: {}
DOWNLOADER_MIDDLEWARES_BASE
Это словарь, содержащий промежуточное ПО загрузчика, которое включено по умолчанию.
Значение по умолчанию —
DOWNLOADER_STATS
Этот параметр используется для включения статистики загрузчика.
Значение по умолчанию: True
DOWNLOAD_DELAY
Он определяет общее время загрузки до загрузки страниц с сайта.
Значение по умолчанию: 0
DOWNLOAD_HANDLERS
Это словарь с обработчиками загрузки.
Значение по умолчанию: {}
DOWNLOAD_HANDLERS_BASE
Это словарь с обработчиками загрузки, который включен по умолчанию.
Значение по умолчанию —
DOWNLOAD_TIMEOUT
Общее время ожидания загрузки до истечения времени ожидания.
Значение по умолчанию: 180
DOWNLOAD_MAXSIZE
Это максимальный размер ответа для загрузки загрузчиком.
Значение по умолчанию: 1073741824 (1024 МБ)
DOWNLOAD_WARNSIZE
Он определяет размер ответа, который загрузчик должен предупредить.
Значение по умолчанию: 33554432 (32 МБ)
DUPEFILTER_CLASS
Это класс, используемый для обнаружения и фильтрации повторяющихся запросов.
Значение по умолчанию: ‘scrapy.dupefilters.RFPDupeFilter’
DUPEFILTER_DEBUG
Этот параметр регистрирует все дубликаты фильтров, если установлено значение true.
Значение по умолчанию: False
РЕДАКТОР
Он используется для редактирования пауков с помощью команды редактирования.
Значение по умолчанию: зависит от среды
РАСШИРЕНИЯ
Это словарь с расширениями, которые включены в проект.
Значение по умолчанию: {}
EXTENSIONS_BASE
Это словарь, имеющий встроенные расширения.
Значение по умолчанию: {‘scrapy.extensions.corestats.CoreStats’: 0,}
FEED_TEMPDIR
Это каталог, используемый для установки пользовательской папки, в которой могут храниться временные файлы искателя.
ITEM_PIPELINES
Это словарь с конвейерами.
Значение по умолчанию: {}
LOG_ENABLED
Он определяет, должно ли быть включено ведение журнала.
Значение по умолчанию: True
LOG_ENCODING
Он определяет тип кодирования, который будет использоваться для регистрации.
Значение по умолчанию: ‘utf-8’
ЖУРНАЛЬНЫЙ ФАЙЛ
Это имя файла, который будет использоваться для вывода журнала.
Значение по умолчанию: Нет
LOG_FORMAT
Это строка, с помощью которой сообщения журнала могут быть отформатированы.
Значение по умолчанию: ‘% (asctime) s [% (имя) s]% (имя уровня) s:% (сообщение) s’
LOG_DATEFORMAT
Это строка, в которой можно отформатировать дату / время.
Значение по умолчанию: «% Y-% m-% d% H:% M:% S»
LOG_LEVEL
Он определяет минимальный уровень журнала.
Значение по умолчанию: «DEBUG»
LOG_STDOUT
Если для этого параметра установлено значение true, весь вывод процесса будет отображаться в журнале.
Значение по умолчанию: False
MEMDEBUG_ENABLED
Он определяет, должна ли быть включена отладка памяти.
Значение по умолчанию: False
MEMDEBUG_NOTIFY
Он определяет отчет памяти, который отправляется на определенный адрес, когда включена отладка памяти.
Значение по умолчанию: []
MEMUSAGE_ENABLED
Он определяет, должно ли использоваться использование памяти, когда процесс Scrapy превышает предел памяти.
Значение по умолчанию: False
MEMUSAGE_LIMIT_MB
Он определяет максимально допустимый предел памяти (в мегабайтах).
Значение по умолчанию: 0
MEMUSAGE_CHECK_INTERVAL_SECONDS
Он используется для проверки текущего использования памяти путем установки длины интервалов.
Значение по умолчанию: 60,0
MEMUSAGE_NOTIFY_MAIL
Он используется для уведомления со списком электронных писем, когда память достигает предела.
Значение по умолчанию: False
MEMUSAGE_REPORT
Он определяет, будет ли отправляться отчет об использовании памяти при закрытии каждого паука.
Значение по умолчанию: False
MEMUSAGE_WARNING_MB
Он определяет общий объем памяти, который должен быть разрешен до отправки предупреждения.
Значение по умолчанию: 0
NEWSPIDER_MODULE
Это модуль, в котором новый паук создается с помощью команды genspider.
Значение по умолчанию: »
RANDOMIZE_DOWNLOAD_DELAY
Он определяет случайное время ожидания Scrapy при загрузке запросов с сайта.
Значение по умолчанию: True
REACTOR_THREADPOOL_MAXSIZE
Он определяет максимальный размер пула резьбы реактора.
Значение по умолчанию: 10
REDIRECT_MAX_TIMES
Он определяет, сколько раз запрос может быть перенаправлен.
Значение по умолчанию: 20
REDIRECT_PRIORITY_ADJUST
Этот параметр, если установлен, регулирует приоритет перенаправления запроса.
Значение по умолчанию: +2
RETRY_PRIORITY_ADJUST
Этот параметр, если установлен, регулирует приоритет повторения запроса.
Значение по умолчанию: -1
ROBOTSTXT_OBEY
Scrapy соблюдает правила robots.txt, если установлено значение true .
Значение по умолчанию: False
SCHEDULER
Он определяет планировщик, который будет использоваться для целей сканирования.
Значение по умолчанию: ‘scrapy.core.scheduler.Scheduler’
SPIDER_CONTRACTS
Это словарь проекта, в котором есть контракты с пауками для тестирования пауков.
Значение по умолчанию: {}
SPIDER_CONTRACTS_BASE
Это словарь с контрактами Scrapy, который включен в Scrapy по умолчанию.
Значение по умолчанию —
SPIDER_LOADER_CLASS
Он определяет класс, который реализует API SpiderLoader для загрузки пауков.
Значение по умолчанию: «scrapy.spiderloader.SpiderLoader»
SPIDER_MIDDLEWARES
Это словарь, содержащий промежуточное программное обеспечение для пауков.
Значение по умолчанию: {}
SPIDER_MIDDLEWARES_BASE
Это словарь, содержащий промежуточное программное обеспечение для пауков, которое по умолчанию включено в Scrapy.
Значение по умолчанию —
SPIDER_MODULES
Это список модулей, содержащих пауков, которые Scrapy будет искать.
Значение по умолчанию: []
STATS_CLASS
Это класс, который реализует API Stats Collector для сбора статистики.
Значение по умолчанию: ‘scrapy.statscollectors.MemoryStatsCollector’
STATS_DUMP
Если для этого параметра установлено значение true, статистика выводится в журнал.
Значение по умолчанию: True
STATSMAILER_RCPTS
Как только пауки закончат соскоб, Scrapy использует этот параметр для отправки статистики.
Значение по умолчанию: []
TELNETCONSOLE_ENABLED
Он определяет, следует ли включать telnetconsole.
Значение по умолчанию: True
TELNETCONSOLE_PORT
Он определяет порт для консоли telnet.
Значение по умолчанию: [6023, 6073]
TEMPLATES_DIR
Это каталог, содержащий шаблоны, которые можно использовать при создании новых проектов.
Значение по умолчанию: каталог шаблонов внутри модуля scrapy
URLLENGTH_LIMIT
Он определяет максимальный предел длины для URL, который будет разрешен для просканированных URL.
Значение по умолчанию: 2083
USER_AGENT
Он определяет пользовательский агент, который будет использоваться при сканировании сайта.
Значение по умолчанию: «Scrapy / VERSION (+ http: //scrapy.org)»
Для других настроек Scrapy, перейдите по этой ссылке .