informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Izinkan saya dengan senang hati memainkan kembali peran protagonis dari sebuah cerita indah tertentu
Mainkan peran sebagai kekasih yang berbagi impian Anda selama beberapa tahun terakhir
Mari menjadi kekasih yang tidak menitikkan air mata cinta lagi
Berpura-pura memiliki adegan yang sama seperti sebelumnya
Putar ulang peran protagonis dari cerita yang indah
Mainkan peran sebagai kekasih yang berbagi impian Anda selama beberapa tahun terakhir
Meskipun kamu tidak mengerti, kamu masih sendirian hingga larut malam
Kenakan sweter senyapmu seolah-olah aku dekat denganmu
🎵 陈慧娴《傻女》
Scrapy adalah kerangka perayap yang kuat. Dengan menggunakan middleware, pengguna dapat menyesuaikan dan memperluas perilaku perayap. Middleware menyediakan mekanisme untuk permintaan dan tanggapan sebelum dan sesudah pemrosesan, memungkinkan pengguna untuk meningkatkan fungsionalitas crawler tanpa mengubah kode inti.
Di Scrapy, urutan eksekusi middleware ditentukan oleh "prioritas" mereka. Memahami dan mengatur hierarki middleware dengan benar sangat penting untuk membangun crawler yang efisien dan mudah dipelihara.
Middleware adalah pengait di Scrapy yang memungkinkan pengguna mengeksekusi kode khusus saat memproses permintaan dan tanggapan. Middleware dibagi menjadi dua kategori:
Tingkat middleware menentukan urutan eksekusinya. Scrapy menggunakan nilai integer untuk mewakili level middleware. Semakin kecil nilainya, semakin awal middleware tersebut dieksekusi.
DOWNLOADER_MIDDLEWARES = {
'myproject.middlewares.CustomDownloaderMiddleware': 543,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
}
Dalam konfigurasi di atas:
CustomDownloaderMiddleware 的等级为 543
UserAgentMiddleware 的等级为 400
RetryMiddleware 的等级为 500
Urutan eksekusinya adalah sebagai berikut:
UserAgentMiddleware(400)
RetryMiddleware(500)
CustomDownloaderMiddleware(543)
Permintaan berasal dari mesin, melewati middleware tingkat rendah, dan akhirnya mencapai pengunduh. Ketika respons kembali dari pengunduh, pertama-tama respons tersebut melewati middleware tingkat yang lebih tinggi dan akhirnya mencapai mesin.
Middleware perayap terletak di antara mesin dan perayap. Berikut ini contoh konfigurasinya:
SPIDER_MIDDLEWARES = {
'myproject.middlewares.CustomSpiderMiddleware': 543,
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,
}
Dalam konfigurasi di atas:
CustomSpiderMiddleware 的等级为 543
HttpErrorMiddleware 的等级为 50
OffsiteMiddleware 的等级为 500
Urutan eksekusinya adalah sebagai berikut:
HttpErrorMiddleware(50)
OffsiteMiddleware(500)
CustomSpiderMiddleware(543)
Permintaan berasal dari mesin, melewati middleware tingkat rendah, dan akhirnya mencapai crawler. Ketika respons kembali dari crawler, respons tersebut terlebih dahulu melewati middleware tingkat yang lebih tinggi dan akhirnya mencapai mesin.
Untuk mengatur level middleware, Anda perlu mendefinisikan kamus yang sesuai di file konfigurasi Scrapy settings.py dan menentukan jalur dan level middleware. Misalnya:
DOWNLOADER_MIDDLEWARES = {
'myproject.middlewares.CustomDownloaderMiddleware': 543,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
}
SPIDER_MIDDLEWARES = {
'myproject.middlewares.CustomSpiderMiddleware': 543,
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
}
Dalam contoh ini, kami mendefinisikan middleware pengunduh CustomDownloaderMiddleware dan middleware crawler CustomSpiderMiddleware, dan menetapkan levelnya masing-masing ke 543.
Scrapy menyediakan banyak middleware bawaan, masing-masing dengan level default. Berikut adalah beberapa middleware pengunduh yang umum dan level defaultnya:
UserAgentMiddleware: 400
RetryMiddleware: 500
RedirectMiddleware: 600
CookiesMiddleware: 700
Untuk middleware crawler, yang umum meliputi:
HttpErrorMiddleware: 50
OffsiteMiddleware: 500
RefererMiddleware: 700
Middleware adalah fitur canggih dalam kerangka Scrapy. Dengan mengatur level middleware dengan benar, Anda dapat mengontrol pemrosesan permintaan dan respons dengan baik. Memahami dan menggunakan aturan pengaturan level middleware dapat membantu membangun sistem crawler yang lebih fleksibel dan efisien.