Учебники

Scrapy — Настройки

Поведение компонентов 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, перейдите по этой ссылке .