Scrapy - Ustawienia
Opis
Zachowanie komponentów Scrapy można modyfikować za pomocą ustawień Scrapy. Ustawienia mogą również wybrać projekt Scrapy, który jest obecnie aktywny, w przypadku gdy masz wiele projektów Scrapy.
Wyznaczanie ustawień
Musisz powiadomić Scrapy, jakiego ustawienia używasz, kiedy usuwasz witrynę. W tym celu zmienna środowiskowaSCRAPY_SETTINGS_MODULE powinno być używane, a jego wartość powinna być zgodna ze składnią ścieżki języka Python.
Wypełnianie ustawień
W poniższej tabeli przedstawiono niektóre mechanizmy, za pomocą których można wypełnić ustawienia -
Sr.No | Mechanizm i opis |
---|---|
1 | Command line options W tym przypadku argumenty, które są przekazywane, mają najwyższy priorytet, zastępując inne opcje. -S służy do zastępowania jednego lub więcej ustawień. |
2 | Settings per-spider Pająki mogą mieć własne ustawienia, które zastępują ustawienia projektu za pomocą atrybutu custom_settings. |
3 | Project settings module Tutaj możesz wypełnić swoje ustawienia niestandardowe, takie jak dodawanie lub modyfikowanie ustawień w pliku settings.py. |
4 | Default settings per-command Każde polecenie narzędzia Scrapy definiuje własne ustawienia w atrybucie default_settings, aby zastąpić globalne ustawienia domyślne. |
5 | Default global settings Te ustawienia można znaleźć w module scrapy.settings.default_settings. |
Ustawienia dostępu
Są one dostępne poprzez ustawienia self i ustawiane w pająku podstawowym po jego zainicjowaniu.
Poniższy przykład ilustruje to.
class DemoSpider(scrapy.Spider):
name = 'demo'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
Aby użyć ustawień przed inicjalizacją pająka, musisz nadpisać metodę from_crawler w metodzie _init_ () twojego pająka. Dostęp do ustawień można uzyskać za pośrednictwem atrybutu scrapy.crawler.Crawler.settings przekazanego do metody from_crawler .
Poniższy przykład ilustruje to.
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'))
Uzasadnienie nadawania nazw
Nazwy ustawień są dodawane jako przedrostek do konfigurowanego przez nie komponentu. Na przykład w przypadku rozszerzenia robots.txt nazwy ustawień mogą mieć postać ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR itp.
Odniesienie do wbudowanych ustawień
Poniższa tabela przedstawia wbudowane ustawienia Scrapy -
Sr.No | Ustawienie i opis |
---|---|
1 | AWS_ACCESS_KEY_ID Służy do uzyskiwania dostępu do Amazon Web Services. Wartość domyślna: brak |
2 | AWS_SECRET_ACCESS_KEY Służy do uzyskiwania dostępu do Amazon Web Services. Wartość domyślna: brak |
3 | BOT_NAME Jest to nazwa bota, którego można użyć do skonstruowania User-Agent. Wartość domyślna: „scrapybot” |
4 | CONCURRENT_ITEMS Maksymalna liczba istniejących pozycji w procesorze elementów używanych do przetwarzania równoległego. Wartość domyślna: 100 |
5 | CONCURRENT_REQUESTS Maksymalna liczba istniejących żądań, które wykonuje downloader Scrapy. Wartość domyślna: 16 |
6 | CONCURRENT_REQUESTS_PER_DOMAIN Maksymalna liczba istniejących żądań, które są wykonywane jednocześnie dla dowolnej domeny. Wartość domyślna: 8 |
7 | CONCURRENT_REQUESTS_PER_IP Maksymalna liczba istniejących żądań wykonywanych jednocześnie dla dowolnego pojedynczego adresu IP. Wartość domyślna: 0 |
8 | DEFAULT_ITEM_CLASS Jest to klasa używana do reprezentowania przedmiotów. Wartość domyślna: „scrapy.item.Item” |
9 | DEFAULT_REQUEST_HEADERS Jest to domyślny nagłówek używany dla żądań HTTP Scrapy. Wartość domyślna - |
10 | DEPTH_LIMIT Maksymalna głębokość przeszukiwania dowolnej witryny przez pająka. Wartość domyślna: 0 |
11 | DEPTH_PRIORITY Jest to liczba całkowita używana do zmiany priorytetu żądania w zależności od głębokości. Wartość domyślna: 0 |
12 | DEPTH_STATS Określa, czy zbierać statystyki głębokości, czy nie. Wartość domyślna: True |
13 | DEPTH_STATS_VERBOSE Gdy to ustawienie jest włączone, liczba żądań jest gromadzona w statystykach dla każdej szczegółowej głębokości. Wartość domyślna: False |
14 | DNSCACHE_ENABLED Służy do włączania DNS w pamięci podręcznej. Wartość domyślna: True |
15 | DNSCACHE_SIZE Definiuje rozmiar DNS w pamięci podręcznej. Wartość domyślna: 10000 |
16 | DNS_TIMEOUT Służy do ustawiania limitu czasu dla DNS do przetwarzania zapytań. Wartość domyślna: 60 |
17 | DOWNLOADER Jest to downloader używany do procesu indeksowania. Wartość domyślna: „scrapy.core.downloader.Downloader” |
18 | DOWNLOADER_MIDDLEWARES Jest to słownik zawierający oprogramowanie pośredniczące do pobierania i ich zamówienia. Domyślna wartość: {} |
19 | DOWNLOADER_MIDDLEWARES_BASE Jest to słownik zawierający oprogramowanie pośredniczące pobierania, które jest domyślnie włączone. Wartość domyślna - |
20 | DOWNLOADER_STATS To ustawienie służy do włączania statystyk pobierania. Wartość domyślna: True |
21 | DOWNLOAD_DELAY Definiuje całkowity czas pobierania, zanim pobierze strony z witryny. Wartość domyślna: 0 |
22 | DOWNLOAD_HANDLERS Jest to słownik z programami do pobierania. Domyślna wartość: {} |
23 | DOWNLOAD_HANDLERS_BASE Jest to słownik z programami obsługi pobierania, który jest domyślnie włączony. Wartość domyślna - |
24 | DOWNLOAD_TIMEOUT Jest to łączny czas, przez jaki downloader musi czekać, zanim upłynie limit czasu. Wartość domyślna: 180 |
25 | DOWNLOAD_MAXSIZE Jest to maksymalny rozmiar odpowiedzi, jaki może pobrać program do pobierania. Wartość domyślna: 1073741824 (1024 MB) |
26 | DOWNLOAD_WARNSIZE Definiuje rozmiar odpowiedzi, którą downloader ma ostrzec. Wartość domyślna: 33554432 (32 MB) |
27 | DUPEFILTER_CLASS Jest to klasa używana do wykrywania i filtrowania żądań, które są zduplikowane. Wartość domyślna: „scrapy.dupefilters.RFPDupeFilter” |
28 | DUPEFILTER_DEBUG To ustawienie rejestruje wszystkie zduplikowane filtry, gdy ma wartość true. Wartość domyślna: False |
29 | EDITOR Służy do edycji pająków za pomocą polecenia edit. Wartość domyślna: zależy od środowiska |
30 | EXTENSIONS Jest to słownik z rozszerzeniami, które są włączone w projekcie. Domyślna wartość: {} |
31 | EXTENSIONS_BASE Jest to słownik mający wbudowane rozszerzenia. Wartość domyślna: {'scrapy.extensions.corestats.CoreStats': 0,} |
32 | FEED_TEMPDIR Jest to katalog używany do ustawiania folderu niestandardowego, w którym mogą być przechowywane pliki tymczasowe przeszukiwacza. |
33 | ITEM_PIPELINES Jest to słownik zawierający potoki. Domyślna wartość: {} |
34 | LOG_ENABLED Określa, czy logowanie ma być włączone. Wartość domyślna: True |
35 | LOG_ENCODING Określa typ kodowania, który ma być używany do logowania. Wartość domyślna: „utf-8” |
36 | LOG_FILE Jest to nazwa pliku, który ma być używany do zapisywania danych w dzienniku. Wartość domyślna: brak |
37 | LOG_FORMAT Jest to ciąg znaków, za pomocą którego można sformatować komunikaty dziennika. Wartość domyślna: '% (asctime) s [% (name) s]% (levelname) s:% (message) s' |
38 | LOG_DATEFORMAT Jest to ciąg znaków, za pomocą którego można sformatować datę / godzinę. Wartość domyślna: '% Y-% m-% d% H:% M:% S' |
39 | LOG_LEVEL Określa minimalny poziom dziennika. Wartość domyślna: „DEBUG” |
40 | LOG_STDOUT Jeśli to ustawienie ma wartość true, wszystkie dane wyjściowe procesu pojawią się w dzienniku. Wartość domyślna: False |
41 | MEMDEBUG_ENABLED Określa, czy debugowanie pamięci ma być włączone. Wartość domyślna: False |
42 | MEMDEBUG_NOTIFY Definiuje raport pamięci, który jest wysyłany na określony adres, gdy włączone jest debugowanie pamięci. Domyślna wartość: [] |
43 | MEMUSAGE_ENABLED Określa, czy użycie pamięci ma być włączone, gdy proces Scrapy przekroczy limit pamięci. Wartość domyślna: False |
44 | MEMUSAGE_LIMIT_MB Określa maksymalny dozwolony limit pamięci (w megabajtach). Wartość domyślna: 0 |
45 | MEMUSAGE_CHECK_INTERVAL_SECONDS Służy do sprawdzania aktualnego wykorzystania pamięci poprzez ustawienie długości interwałów. Wartość domyślna: 60,0 |
46 | MEMUSAGE_NOTIFY_MAIL Służy do powiadamiania listą e-maili, gdy pamięć osiągnie limit. Wartość domyślna: False |
47 | MEMUSAGE_REPORT Określa, czy raport użycia pamięci ma być wysyłany po zamknięciu każdego pająka. Wartość domyślna: False |
48 | MEMUSAGE_WARNING_MB Definiuje całkowitą pamięć, która ma być dozwolona przed wysłaniem ostrzeżenia. Wartość domyślna: 0 |
49 | NEWSPIDER_MODULE Jest to moduł, w którym za pomocą polecenia genspider tworzony jest nowy pająk. Domyślna wartość: '' |
50 | RANDOMIZE_DOWNLOAD_DELAY Definiuje losowy czas oczekiwania Scrapy podczas pobierania żądań z witryny. Wartość domyślna: True |
51 | REACTOR_THREADPOOL_MAXSIZE Określa maksymalny rozmiar puli wątków reaktora. Wartość domyślna: 10 |
52 | REDIRECT_MAX_TIMES Określa, ile razy można przekierować żądanie. Wartość domyślna: 20 |
53 | REDIRECT_PRIORITY_ADJUST To ustawienie, gdy jest ustawione, dostosowuje priorytet przekierowania żądania. Wartość domyślna: +2 |
54 | RETRY_PRIORITY_ADJUST To ustawienie, gdy jest ustawione, dostosowuje priorytet ponownych prób żądania. Wartość domyślna: -1 |
55 | ROBOTSTXT_OBEY Scrapy przestrzega zasad pliku robots.txt, gdy ma wartość true . Wartość domyślna: False |
56 | SCHEDULER Definiuje harmonogram, który ma być używany do celów indeksowania. Wartość domyślna: „scrapy.core.scheduler.Scheduler” |
57 | SPIDER_CONTRACTS Jest to słownik w projekcie zawierający kontrakty pająków do testowania pająków. Domyślna wartość: {} |
58 | SPIDER_CONTRACTS_BASE Jest to słownik zawierający kontrakty Scrapy, który jest domyślnie włączony w Scrapy. Wartość domyślna - |
59 | SPIDER_LOADER_CLASS Definiuje klasę, która implementuje API SpiderLoadera do ładowania pająków. Wartość domyślna: „scrapy.spiderloader.SpiderLoader” |
60 | SPIDER_MIDDLEWARES Jest to słownik zawierający oprogramowanie pośrednie pająka. Domyślna wartość: {} |
61 | SPIDER_MIDDLEWARES_BASE Jest to słownik zawierający oprogramowanie pośrednie pająka, które jest domyślnie włączone w Scrapy. Wartość domyślna - |
62 | SPIDER_MODULES Jest to lista modułów zawierających pająki, których będzie szukał Scrapy. Domyślna wartość: [] |
63 | STATS_CLASS Jest to klasa, która implementuje API Stats Collector do zbierania statystyk. Wartość domyślna: „scrapy.statscollectors.MemoryStatsCollector” |
64 | STATS_DUMP To ustawienie, gdy ma wartość true, zrzuca statystyki do dziennika. Wartość domyślna: True |
65 | STATSMAILER_RCPTS Gdy pająki zakończą skrobanie, Scrapy używa tego ustawienia do wysyłania statystyk. Domyślna wartość: [] |
66 | TELNETCONSOLE_ENABLED Określa, czy włączyć konsolę telnet. Wartość domyślna: True |
67 | TELNETCONSOLE_PORT Definiuje port dla konsoli telnet. Wartość domyślna: [6023, 6073] |
68 | TEMPLATES_DIR Jest to katalog zawierający szablony, które można wykorzystać podczas tworzenia nowych projektów. Wartość domyślna: katalog szablonów w module scrapy |
69 | URLLENGTH_LIMIT Określa maksymalny limit długości adresu URL, jaki może być dozwolony w przypadku indeksowanych adresów URL. Wartość domyślna: 2083 |
70 | USER_AGENT Definiuje klienta użytkownika, który ma być używany podczas indeksowania serwisu. Wartość domyślna: „Scrapy / VERSION (+ http: //scrapy.org)” |
Aby zobaczyć inne ustawienia Scrapy, przejdź do tego łącza .