Scrapy - Ayarlar

Açıklama

Scrapy bileşenlerinin davranışı, Scrapy ayarları kullanılarak değiştirilebilir. Birden fazla Scrapy projeniz olması durumunda ayarlar, şu anda aktif olan Scrapy projesini de seçebilir.

Ayarları Belirleme

Bir web sitesini hurdaya çıkardığınızda hangi ayarı kullandığınızı Scrapy'ye bildirmelisiniz. Bunun için ortam değişkeniSCRAPY_SETTINGS_MODULE kullanılmalı ve değeri Python yolu sözdiziminde olmalıdır.

Ayarları Doldurma

Aşağıdaki tablo, ayarları doldurabileceğiniz bazı mekanizmaları gösterir -

Sr.No Mekanizma ve Açıklama
1

Command line options

Burada, iletilen argümanlar diğer seçenekleri geçersiz kılarak en yüksek önceliği alır. -S, bir veya daha fazla ayarı geçersiz kılmak için kullanılır.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Örümcekler, custom_settings özelliğini kullanarak proje ayarlarını geçersiz kılan kendi ayarlarına sahip olabilir.

class DemoSpider(scrapy.Spider): 
   name = 'demo'  
   custom_settings = { 
      'SOME_SETTING': 'some value', 
   }
3

Project settings module

Burada, settings.py dosyasındaki ayarları eklemek veya değiştirmek gibi özel ayarlarınızı doldurabilirsiniz.

4

Default settings per-command

Her Scrapy aracı komutu, genel varsayılan ayarları geçersiz kılmak için default_settings niteliğinde kendi ayarlarını tanımlar.

5

Default global settings

Bu ayarlar, scrapy.settings.default_settings modülünde bulunur.

Erişim Ayarları

Kendi kendine ayarlar aracılığıyla kullanılabilirler ve başlatıldıktan sonra temel örümceğe yerleştirilirler.

Aşağıdaki örnek bunu göstermektedir.

class DemoSpider(scrapy.Spider): 
   name = 'demo' 
   start_urls = ['http://example.com']  
   def parse(self, response): 
      print("Existing settings: %s" % self.settings.attributes.keys())

Örümceği başlatmadan önce ayarları kullanmak için örümceğinizin _init_ () yönteminde from_crawler yöntemini geçersiz kılmalısınız . Sen nitelik yoluyla ayarlara erişebilirsiniz scrapy.crawler.Crawler.settings geçirilen from_crawler yöntemiyle.

Aşağıdaki örnek bunu göstermektedir.

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

Adları Ayarlamanın Gerekçesi

Ayar adları, yapılandırdıkları bileşene önek olarak eklenir. Örneğin, robots.txt uzantısı için ayar adları ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR vb. Olabilir.

Yerleşik Ayarlar Referansı

Aşağıdaki tablo Scrapy'nin yerleşik ayarlarını gösterir -

Sr.No Ayar ve Açıklama
1

AWS_ACCESS_KEY_ID

Amazon Web Hizmetlerine erişmek için kullanılır.

Varsayılan değer: Yok

2

AWS_SECRET_ACCESS_KEY

Amazon Web Hizmetlerine erişmek için kullanılır.

Varsayılan değer: Yok

3

BOT_NAME

User-Agent oluşturmak için kullanılabilecek botun adıdır.

Varsayılan değer: 'scrapybot'

4

CONCURRENT_ITEMS

Paralel olarak işlemek için kullanılan Öğe İşlemcideki maksimum mevcut öğe sayısı.

Varsayılan değer: 100

5

CONCURRENT_REQUESTS

Scrapy indiricisinin gerçekleştirdiği maksimum mevcut istek sayısı.

Varsayılan değer: 16

6

CONCURRENT_REQUESTS_PER_DOMAIN

Herhangi bir tek alan için eşzamanlı olarak gerçekleştirilen maksimum mevcut istek sayısı.

Varsayılan değer: 8

7

CONCURRENT_REQUESTS_PER_IP

Herhangi bir tek IP'ye eşzamanlı olarak gerçekleştirilen maksimum mevcut istek sayısı.

Varsayılan değer: 0

8

DEFAULT_ITEM_CLASS

Öğeleri temsil etmek için kullanılan bir sınıftır.

Varsayılan değer: 'scrapy.item.Item'

9

DEFAULT_REQUEST_HEADERS

Scrapy'nin HTTP istekleri için kullanılan varsayılan bir başlıktır.

Varsayılan değer -

{  
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
	*/*;q=0.8', 'Accept-Language': 'en',  
}
10

DEPTH_LIMIT

Bir örümceğin herhangi bir siteyi taraması için maksimum derinlik.

Varsayılan değer: 0

11

DEPTH_PRIORITY

Derinliğe göre talebin önceliğini değiştirmek için kullanılan bir tamsayıdır.

Varsayılan değer: 0

12

DEPTH_STATS

Derinlik istatistiklerinin toplanıp toplanmayacağını belirtir.

Varsayılan değer: True

13

DEPTH_STATS_VERBOSE

Bu ayar etkinleştirildiğinde, isteklerin sayısı her ayrıntılı derinlik için istatistiklerde toplanır.

Varsayılan değer: False

14

DNSCACHE_ENABLED

Bellek önbelleğinde DNS'yi etkinleştirmek için kullanılır.

Varsayılan değer: True

15

DNSCACHE_SIZE

Bellek önbelleğindeki DNS'nin boyutunu tanımlar.

Varsayılan değer: 10000

16

DNS_TIMEOUT

DNS'nin sorguları işlemesi için zaman aşımını ayarlamak için kullanılır.

Varsayılan değer: 60

17

DOWNLOADER

Tarama işlemi için kullanılan bir indiricidir.

Varsayılan değer: 'scrapy.core.downloader.Downloader'

18

DOWNLOADER_MIDDLEWARES

İndirme ara yazılımını ve siparişlerini tutan bir sözlüktür.

Varsayılan değer: {}

19

DOWNLOADER_MIDDLEWARES_BASE

Varsayılan olarak etkinleştirilen indirme ara yazılımını tutan bir sözlüktür.

Varsayılan değer -

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
20

DOWNLOADER_STATS

Bu ayar, indirici istatistiklerini etkinleştirmek için kullanılır.

Varsayılan değer: True

21

DOWNLOAD_DELAY

Sayfaları siteden indirmeden önce indiricinin toplam süresini tanımlar.

Varsayılan değer: 0

22

DOWNLOAD_HANDLERS

İndirme işleyicileri olan bir sözlüktür.

Varsayılan değer: {}

23

DOWNLOAD_HANDLERS_BASE

Varsayılan olarak etkinleştirilen indirme işleyicilerine sahip bir sözlüktür.

Varsayılan değer -

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
24

DOWNLOAD_TIMEOUT

İndiricinin zaman aşımına uğramadan önce beklemesi gereken toplam süredir.

Varsayılan değer: 180

25

DOWNLOAD_MAXSIZE

İndiricinin indirmesi için maksimum yanıt boyutudur.

Varsayılan değer: 1073741824 (1024MB)

26

DOWNLOAD_WARNSIZE

İndiricinin uyarması için yanıt boyutunu tanımlar.

Varsayılan değer: 33554432 (32MB)

27

DUPEFILTER_CLASS

Yinelenen istekleri tespit etmek ve filtrelemek için kullanılan bir sınıftır.

Varsayılan değer: 'scrapy.dupefilters.RFPDupeFilter'

28

DUPEFILTER_DEBUG

Bu ayar, true olarak ayarlandığında tüm yinelenen filtreleri günlüğe kaydeder.

Varsayılan değer: False

29

EDITOR

Düzenleme komutunu kullanarak örümcekleri düzenlemek için kullanılır.

Varsayılan değer: Ortama bağlıdır

30

EXTENSIONS

Projede etkinleştirilmiş uzantılara sahip bir sözlüktür.

Varsayılan değer: {}

31

EXTENSIONS_BASE

Yerleşik uzantıları olan bir sözlüktür.

Varsayılan değer: {'scrapy.extensions.corestats.CoreStats': 0,}

32

FEED_TEMPDIR

Tarayıcı geçici dosyalarının depolanabileceği özel klasörü ayarlamak için kullanılan bir dizindir.

33

ITEM_PIPELINES

Boru hatları olan bir sözlüktür.

Varsayılan değer: {}

34

LOG_ENABLED

Günlüğe kaydetmenin etkinleştirilip etkinleştirilmeyeceğini tanımlar.

Varsayılan değer: True

35

LOG_ENCODING

Günlük kaydı için kullanılacak kodlama türünü tanımlar.

Varsayılan değer: 'utf-8'

36

LOG_FILE

Günlüğe kaydetme çıktısı için kullanılacak dosyanın adıdır.

Varsayılan değer: Yok

37

LOG_FORMAT

Günlük mesajlarının biçimlendirilebileceği bir dizedir.

Varsayılan değer: '% (asctime) s [% (ad) s]% (seviye adı) s:% (mesaj) s'

38

LOG_DATEFORMAT

Tarih / saatin biçimlendirilebileceğini kullanan bir dizedir.

Varsayılan değer: '% Y-% m-% d% H:% M:% S'

39

LOG_LEVEL

Minimum log seviyesini tanımlar.

Varsayılan değer: "HATA AYIKLA"

40

LOG_STDOUT

Bu ayar true olarak ayarlanırsa, tüm işlem çıktınız günlükte görünecektir.

Varsayılan değer: False

41

MEMDEBUG_ENABLED

Bellek hata ayıklamasının etkinleştirilip etkinleştirilmeyeceğini tanımlar.

Varsayılan Değer: Yanlış

42

MEMDEBUG_NOTIFY

Bellek hata ayıklaması etkinleştirildiğinde belirli bir adrese gönderilen bellek raporunu tanımlar.

Varsayılan değer: []

43

MEMUSAGE_ENABLED

Bir Scrapy işlemi bir bellek sınırını aştığında bellek kullanımının etkinleştirilip etkinleştirilmeyeceğini tanımlar.

Varsayılan değer: False

44

MEMUSAGE_LIMIT_MB

İzin verilecek maksimum bellek sınırını (megabayt cinsinden) tanımlar.

Varsayılan değer: 0

45

MEMUSAGE_CHECK_INTERVAL_SECONDS

Aralıkların uzunluğunu ayarlayarak mevcut bellek kullanımını kontrol etmek için kullanılır.

Varsayılan değer: 60.0

46

MEMUSAGE_NOTIFY_MAIL

Hafıza sınıra ulaştığında bir e-posta listesiyle bildirimde bulunmak için kullanılır.

Varsayılan değer: False

47

MEMUSAGE_REPORT

Hafıza kullanım raporunun her örümceğin kapatılmasıyla gönderilip gönderilmeyeceğini tanımlar.

Varsayılan değer: False

48

MEMUSAGE_WARNING_MB

Bir uyarı gönderilmeden önce izin verilecek toplam belleği tanımlar.

Varsayılan değer: 0

49

NEWSPIDER_MODULE

Genspider komutu kullanılarak yeni bir örümceğin oluşturulduğu modüldür.

Varsayılan değer: ''

50

RANDOMIZE_DOWNLOAD_DELAY

Bir Scrapy'nin istekleri siteden indirirken bekleyeceği rastgele bir süreyi tanımlar.

Varsayılan değer: True

51

REACTOR_THREADPOOL_MAXSIZE

Reaktör iplik havuzu için maksimum bir boyut tanımlar.

Varsayılan değer: 10

52

REDIRECT_MAX_TIMES

Bir isteğin kaç kez yeniden yönlendirilebileceğini tanımlar.

Varsayılan değer: 20

53

REDIRECT_PRIORITY_ADJUST

Bu ayar ayarlandığında, bir isteğin yönlendirme önceliğini ayarlar.

Varsayılan değer: +2

54

RETRY_PRIORITY_ADJUST

Bu ayar ayarlandığında, bir isteğin yeniden deneme önceliğini ayarlar.

Varsayılan değer: -1

55

ROBOTSTXT_OBEY

Scrapy, true olarak ayarlandığında robots.txt politikalarına uyar .

Varsayılan değer: False

56

SCHEDULER

Tarama amacıyla kullanılacak zamanlayıcıyı tanımlar.

Varsayılan değer: 'scrapy.core.scheduler.Scheduler'

57

SPIDER_CONTRACTS

Projede örümcekleri test etmek için örümcek sözleşmesi olan bir sözlüktür.

Varsayılan değer: {}

58

SPIDER_CONTRACTS_BASE

Scrapy'de varsayılan olarak etkinleştirilen Scrapy sözleşmelerini tutan bir sözlüktür.

Varsayılan değer -

{ 
   'scrapy.contracts.default.UrlContract' : 1, 
   'scrapy.contracts.default.ReturnsContract': 2, 
}
59

SPIDER_LOADER_CLASS

Örümcekleri yüklemek için SpiderLoader API uygulayan bir sınıfı tanımlar .

Varsayılan değer: 'scrapy.spiderloader.SpiderLoader'

60

SPIDER_MIDDLEWARES

Örümcek yazılımlarını tutan bir sözlüktür.

Varsayılan değer: {}

61

SPIDER_MIDDLEWARES_BASE

Varsayılan olarak Scrapy'de etkinleştirilmiş örümcek yazılımlarını tutan bir sözlüktür.

Varsayılan değer -

{ 
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 
}
62

SPIDER_MODULES

Scrapy'nin arayacağı örümcekleri içeren modüllerin listesidir.

Varsayılan değer: []

63

STATS_CLASS

İstatistik toplamak için Stats Collector API uygulayan bir sınıftır .

Varsayılan değer: 'scrapy.statscollectors.MemoryStatsCollector'

64

STATS_DUMP

Bu ayar true olarak ayarlandığında, istatistikleri günlüğe döker.

Varsayılan değer: True

65

STATSMAILER_RCPTS

Örümcekler kazımayı bitirdiğinde, Scrapy istatistikleri göndermek için bu ayarı kullanır.

Varsayılan değer: []

66

TELNETCONSOLE_ENABLED

Telnet konsolunun etkinleştirilip etkinleştirilmeyeceğini tanımlar.

Varsayılan değer: True

67

TELNETCONSOLE_PORT

Telnet konsolu için bir bağlantı noktası tanımlar.

Varsayılan değer: [6023, 6073]

68

TEMPLATES_DIR

Yeni projeler oluştururken kullanılabilecek şablonları içeren bir dizindir.

Varsayılan değer: scrapy modülündeki şablonlar dizini

69

URLLENGTH_LIMIT

Taranan URL'ler için izin verilecek maksimum URL uzunluğu sınırını tanımlar.

Varsayılan değer: 2083

70

USER_AGENT

Bir siteyi tararken kullanılacak kullanıcı aracısını tanımlar.

Varsayılan değer: "Scrapy / VERSION (+ http: //scrapy.org)"

Diğer Scrapy ayarları için bu bağlantıya gidin .