Scrapy - Pengaturan
Deskripsi
Perilaku komponen Scrapy dapat dimodifikasi menggunakan pengaturan Scrapy. Pengaturan juga dapat memilih proyek Scrapy yang sedang aktif, jika Anda memiliki beberapa proyek Scrapy.
Menunjuk Pengaturan
Anda harus memberi tahu Scrapy setelan mana yang Anda gunakan saat membatalkan situs web. Untuk ini, variabel lingkunganSCRAPY_SETTINGS_MODULE harus digunakan dan nilainya harus dalam sintaks jalur Python.
Mengisi Pengaturan
Tabel berikut menunjukkan beberapa mekanisme yang dapat Anda gunakan untuk mengisi pengaturan -
Sr Tidak | Mekanisme & Deskripsi |
---|---|
1 | Command line options Di sini, argumen yang diteruskan memiliki prioritas tertinggi dengan mengganti opsi lain. -S digunakan untuk menimpa satu atau beberapa pengaturan. |
2 | Settings per-spider Spider dapat memiliki pengaturannya sendiri yang menggantikan yang proyek dengan menggunakan atribut custom_settings. |
3 | Project settings module Di sini, Anda dapat mengisi pengaturan kustom Anda seperti menambah atau mengubah pengaturan di file settings.py. |
4 | Default settings per-command Setiap perintah alat Scrapy mendefinisikan pengaturannya sendiri di atribut default_settings, untuk mengganti pengaturan default global. |
5 | Default global settings Pengaturan ini ditemukan di modul scrapy.settings.default_settings. |
Pengaturan Akses
Mereka tersedia melalui pengaturan sendiri dan ditetapkan di laba-laba dasar setelah diinisialisasi.
Contoh berikut menunjukkan hal ini.
class DemoSpider(scrapy.Spider):
name = 'demo'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
Untuk menggunakan pengaturan sebelum menginisialisasi laba-laba, Anda harus mengganti metode from_crawler dalam metode _init_ () laba-laba Anda. Anda dapat mengakses pengaturan melalui atribut scrapy.crawler.Crawler.settings yang diteruskan ke metode from_crawler .
Contoh berikut menunjukkan hal ini.
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'))
Dasar Pemikiran untuk Menetapkan Nama
Nama pengaturan ditambahkan sebagai awalan ke komponen yang mereka konfigurasikan. Misalnya, untuk ekstensi robots.txt, nama setelannya dapat ROBOTSTXT_ENABLED, ROBOTSTXT_OBEY, ROBOTSTXT_CACHEDIR, dll.
Referensi Pengaturan Bawaan
Tabel berikut menunjukkan pengaturan bawaan Scrapy -
Sr Tidak | Pengaturan & Deskripsi |
---|---|
1 | AWS_ACCESS_KEY_ID Ini digunakan untuk mengakses Amazon Web Services. Nilai default: Tidak ada |
2 | AWS_SECRET_ACCESS_KEY Ini digunakan untuk mengakses Amazon Web Services. Nilai default: Tidak ada |
3 | BOT_NAME Ini adalah nama bot yang dapat digunakan untuk membangun User-Agent. Nilai default: 'scrapybot' |
4 | CONCURRENT_ITEMS Jumlah maksimum item yang ada di Prosesor Item yang digunakan untuk memproses secara paralel. Nilai default: 100 |
5 | CONCURRENT_REQUESTS Jumlah maksimum permintaan yang ada yang dilakukan pengunduh Scrapy. Nilai default: 16 |
6 | CONCURRENT_REQUESTS_PER_DOMAIN Jumlah maksimum permintaan yang ada yang bekerja secara bersamaan untuk satu domain. Nilai default: 8 |
7 | CONCURRENT_REQUESTS_PER_IP Jumlah maksimum permintaan yang ada yang bekerja secara bersamaan ke satu IP. Nilai default: 0 |
8 | DEFAULT_ITEM_CLASS Ini adalah kelas yang digunakan untuk merepresentasikan item. Nilai default: 'scrapy.item.Item' |
9 | DEFAULT_REQUEST_HEADERS Ini adalah header default yang digunakan untuk permintaan HTTP Scrapy. Nilai default - |
10 | DEPTH_LIMIT Kedalaman maksimum bagi laba-laba untuk merayapi situs mana pun. Nilai default: 0 |
11 | DEPTH_PRIORITY Ini adalah bilangan bulat yang digunakan untuk mengubah prioritas permintaan sesuai dengan kedalamannya. Nilai default: 0 |
12 | DEPTH_STATS Ini menyatakan apakah akan mengumpulkan statistik kedalaman atau tidak. Nilai default: Benar |
13 | DEPTH_STATS_VERBOSE Pengaturan ini ketika diaktifkan, jumlah permintaan dikumpulkan dalam statistik untuk setiap kedalaman verbose. Nilai default: False |
14 | DNSCACHE_ENABLED Ini digunakan untuk mengaktifkan DNS di cache memori. Nilai default: Benar |
15 | DNSCACHE_SIZE Ini menentukan ukuran DNS di cache memori. Nilai default: 10000 |
16 | DNS_TIMEOUT Ini digunakan untuk menyetel waktu tunggu DNS untuk memproses kueri. Nilai default: 60 |
17 | DOWNLOADER Ini adalah pengunduh yang digunakan untuk proses perayapan. Nilai default: 'scrapy.core.downloader.Downloader' |
18 | DOWNLOADER_MIDDLEWARES Ini adalah kamus yang menampung middleware pengunduh dan pesanan mereka. Nilai default: {} |
19 | DOWNLOADER_MIDDLEWARES_BASE Ini adalah kamus yang menampung middleware pengunduh yang diaktifkan secara default. Nilai default - |
20 | DOWNLOADER_STATS Pengaturan ini digunakan untuk mengaktifkan statistik pengunduh. Nilai default: Benar |
21 | DOWNLOAD_DELAY Ini menentukan total waktu untuk pengunduh sebelum mengunduh halaman dari situs. Nilai default: 0 |
22 | DOWNLOAD_HANDLERS Ini adalah kamus dengan penangan unduhan. Nilai default: {} |
23 | DOWNLOAD_HANDLERS_BASE Ini adalah kamus dengan penangan unduhan yang diaktifkan secara default. Nilai default - |
24 | DOWNLOAD_TIMEOUT Ini adalah total waktu bagi pengunduh untuk menunggu sebelum waktu habis. Nilai default: 180 |
25 | DOWNLOAD_MAXSIZE Ini adalah ukuran respons maksimum yang dapat diunduh pengunduh. Nilai default: 1073741824 (1024MB) |
26 | DOWNLOAD_WARNSIZE Ini menentukan ukuran respons untuk pengunduh untuk memperingatkan. Nilai default: 33554432 (32MB) |
27 | DUPEFILTER_CLASS Ini adalah kelas yang digunakan untuk mendeteksi dan memfilter permintaan yang duplikat. Nilai default: 'scrapy.dupefilters.RFPDupeFilter' |
28 | DUPEFILTER_DEBUG Pengaturan ini mencatat semua filter duplikat ketika disetel ke true. Nilai default: False |
29 | EDITOR Ini digunakan untuk mengedit laba-laba menggunakan perintah edit. Nilai default: Tergantung pada lingkungan |
30 | EXTENSIONS Ini adalah kamus yang memiliki ekstensi yang diaktifkan dalam proyek. Nilai default: {} |
31 | EXTENSIONS_BASE Ini adalah kamus yang memiliki ekstensi bawaan. Nilai default: {'scrapy.extensions.corestats.CoreStats': 0,} |
32 | FEED_TEMPDIR Ini adalah direktori yang digunakan untuk menyetel folder khusus tempat file sementara crawler dapat disimpan. |
33 | ITEM_PIPELINES Ini adalah kamus yang memiliki saluran pipa. Nilai default: {} |
34 | LOG_ENABLED Ini menentukan apakah logging akan diaktifkan. Nilai default: Benar |
35 | LOG_ENCODING Ini mendefinisikan jenis pengkodean yang akan digunakan untuk logging. Nilai default: 'utf-8' |
36 | LOG_FILE Ini adalah nama file yang akan digunakan untuk keluaran logging. Nilai default: Tidak ada |
37 | LOG_FORMAT Ini adalah string yang digunakan untuk memformat pesan log. Nilai default: '% (asctime) s [% (name) s]% (levelname) s:% (message) s' |
38 | LOG_DATEFORMAT Ini adalah string yang menggunakan tanggal / waktu yang dapat diformat. Nilai default: '% Y-% m-% d% H:% M:% S' |
39 | LOG_LEVEL Ini mendefinisikan level log minimum. Nilai default: 'DEBUG' |
40 | LOG_STDOUT Pengaturan ini jika disetel ke true, semua keluaran proses Anda akan muncul di log. Nilai default: False |
41 | MEMDEBUG_ENABLED Ini menentukan apakah debugging memori akan diaktifkan. Nilai Default: False |
42 | MEMDEBUG_NOTIFY Ini mendefinisikan laporan memori yang dikirim ke alamat tertentu saat debugging memori diaktifkan. Nilai default: [] |
43 | MEMUSAGE_ENABLED Ini menentukan apakah penggunaan memori akan diaktifkan ketika proses Scrapy melebihi batas memori. Nilai default: False |
44 | MEMUSAGE_LIMIT_MB Ini menentukan batas maksimum untuk memori (dalam megabyte) yang akan diizinkan. Nilai default: 0 |
45 | MEMUSAGE_CHECK_INTERVAL_SECONDS Ini digunakan untuk memeriksa penggunaan memori saat ini dengan mengatur panjang intervalnya. Nilai default: 60.0 |
46 | MEMUSAGE_NOTIFY_MAIL Ini digunakan untuk memberi tahu dengan daftar email saat memori mencapai batas. Nilai default: False |
47 | MEMUSAGE_REPORT Ini menentukan apakah laporan penggunaan memori akan dikirim saat menutup setiap laba-laba. Nilai default: False |
48 | MEMUSAGE_WARNING_MB Ini mendefinisikan memori total yang diizinkan sebelum peringatan dikirim. Nilai default: 0 |
49 | NEWSPIDER_MODULE Ini adalah modul di mana laba-laba baru dibuat menggunakan perintah genspider. Nilai default: '' |
50 | RANDOMIZE_DOWNLOAD_DELAY Ini menentukan jumlah waktu acak bagi Scrapy untuk menunggu saat mengunduh permintaan dari situs. Nilai default: Benar |
51 | REACTOR_THREADPOOL_MAXSIZE Ini menentukan ukuran maksimum untuk threadpool reaktor. Nilai default: 10 |
52 | REDIRECT_MAX_TIMES Ini menentukan berapa kali permintaan dapat diarahkan. Nilai default: 20 |
53 | REDIRECT_PRIORITY_ADJUST Pengaturan ini ketika diatur, menyesuaikan prioritas pengalihan permintaan. Nilai default: +2 |
54 | RETRY_PRIORITY_ADJUST Pengaturan ini ketika disetel, menyesuaikan prioritas coba lagi dari sebuah permintaan. Nilai default: -1 |
55 | ROBOTSTXT_OBEY Scrapy mematuhi kebijakan robots.txt jika disetel ke true . Nilai default: False |
56 | SCHEDULER Ini mendefinisikan penjadwal yang akan digunakan untuk tujuan perayapan. Nilai default: 'scrapy.core.scheduler.Scheduler' |
57 | SPIDER_CONTRACTS Ini adalah kamus dalam proyek yang memiliki kontrak laba-laba untuk menguji laba-laba. Nilai default: {} |
58 | SPIDER_CONTRACTS_BASE Ini adalah kamus yang menyimpan kontrak Scrapy yang diaktifkan di Scrapy secara default. Nilai default - |
59 | SPIDER_LOADER_CLASS Ini mendefinisikan kelas yang mengimplementasikan SpiderLoader API untuk memuat spider. Nilai default: 'scrapy.spiderloader.SpiderLoader' |
60 | SPIDER_MIDDLEWARES Ini adalah kamus yang memegang spider middlewares. Nilai default: {} |
61 | SPIDER_MIDDLEWARES_BASE Ini adalah kamus yang menyimpan spider middlewares yang diaktifkan di Scrapy secara default. Nilai default - |
62 | SPIDER_MODULES Ini adalah daftar modul yang berisi spider yang akan dicari Scrapy. Nilai default: [] |
63 | STATS_CLASS Ini adalah kelas yang mengimplementasikan Stats Collector API untuk mengumpulkan statistik. Nilai default: 'scrapy.statscollectors.MemoryStatsCollector' |
64 | STATS_DUMP Pengaturan ini ketika disetel ke true, membuang statistik ke log. Nilai default: Benar |
65 | STATSMAILER_RCPTS Setelah laba-laba selesai mengorek, Scrapy menggunakan pengaturan ini untuk mengirimkan statistiknya. Nilai default: [] |
66 | TELNETCONSOLE_ENABLED Ini menentukan apakah akan mengaktifkan telnetconsole. Nilai default: Benar |
67 | TELNETCONSOLE_PORT Ini mendefinisikan port untuk konsol telnet. Nilai default: [6023, 6073] |
68 | TEMPLATES_DIR Ini adalah direktori yang berisi templat yang dapat digunakan saat membuat proyek baru. Nilai default: direktori templates di dalam modul scrapy |
69 | URLLENGTH_LIMIT Ini menentukan batas maksimum panjang URL yang diizinkan untuk URL yang dirayapi. Nilai default: 2083 |
70 | USER_AGENT Ini menentukan agen pengguna yang akan digunakan saat merayapi situs. Nilai default: "Scrapy / VERSION (+ http: //scrapy.org)" |
Untuk pengaturan Scrapy lainnya, buka tautan ini .