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.

scrapy crawl myspider -s LOG_FILE = scrapy.log
2

Settings per-spider

Spider dapat memiliki pengaturannya sendiri yang menggantikan yang proyek dengan menggunakan atribut custom_settings.

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

{  
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,
	*/*;q=0.8', 'Accept-Language': 'en',  
}
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 -

{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, }
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 -

{ 'file': 'scrapy.core.downloader.handlers.file.FileDownloadHandler', }
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 -

{ 
   'scrapy.contracts.default.UrlContract' : 1, 
   'scrapy.contracts.default.ReturnsContract': 2, 
}
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 -

{ 
   'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50, 
}
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 .