Scrapy - Настройки

Описание

Поведение компонентов Scrapy можно изменить с помощью настроек Scrapy. В настройках также можно выбрать проект Scrapy, который в настоящее время активен, если у вас несколько проектов Scrapy.

Назначение настроек

Вы должны уведомить Scrapy, какой параметр вы используете, когда вы сбрасываете веб-сайт. Для этого переменная окруженияSCRAPY_SETTINGS_MODULE следует использовать, и его значение должно быть в синтаксисе пути Python.

Заполнение настроек

В следующей таблице показаны некоторые механизмы, с помощью которых вы можете заполнить настройки.

Старший Нет Механизм и описание
1

Command line options

Здесь переданные аргументы имеют наивысший приоритет, переопределяя другие параметры. -S используется для переопределения одного или нескольких параметров.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

У пауков могут быть свои собственные настройки, которые переопределяют настройки проекта с помощью атрибута custom_settings.

class DemoSpider(scrapy.Spider): 
   name = 'demo'  
   custom_settings = { 
      'SOME_SETTING': 'some value', 
   }
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.

Значение по умолчанию -

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

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.

Значение по умолчанию -

{ 
   '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 сборщика статистики для сбора статистики.

Значение по умолчанию: 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 перейдите по этой ссылке .