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. |
2 | Settings per-spider Örümcekler, custom_settings özelliğini kullanarak proje ayarlarını geçersiz kılan kendi ayarlarına sahip olabilir. |
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 - |
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 - |
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 - |
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 - |
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 - |
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 .