insocks
Back to blog. Article language: BN EN ES FR HI ID PT RU UR VI ZH

Mengatur proxy di Scrapy

Proxy di Scrapy mengarahkan permintaan melalui endpoint yang terkontrol untuk mengumpulkan data publik secara andal. Pengaturan proxy Scrapy yang aman membantu dalam lokalisasi, distribusi beban, pemantauan, dan crawling yang stabil. Di Amerika Serikat, gunakan proxy hanya untuk alur kerja publik yang sah dengan menghormati robots.txt, ketentuan, dan batas kecepatan.

Mengapa proyek Scrapy membutuhkan proxy

Proyek Scrapy membutuhkan proxy ketika satu koneksi langsung terlalu terbatas untuk pengumpulan data publik yang andal. Alur kerja proxy Scrapy yang terencana membantu tim mengurangi kegagalan koneksi, membandingkan halaman regional, dan menjaga pengujian tetap terukur.

✅ Skenario yang sah:

  • Pemantauan halaman produk publik
  • QA untuk konten regional
  • Pemeriksaan uptime dan ketersediaan
  • Validasi data internal

Tipe proxy mana yang terbaik untuk Scrapy

Tipe proxy terbaik bergantung pada stabilitas, durasi sesi, harga, dan wilayah. Untuk pemeriksaan publik jangka panjang, paket proxy rotasi Scrapy dapat mendistribusikan permintaan ke rute yang disetujui tanpa mengubah otomatisasi menjadi spam.

TipeStabilitasCocok untuk
ResidentialTinggiHalaman publik lokal
MobileSedangPemeriksaan web mobile
ISPTinggiSesi panjang
DatacenterSedangQA internal

Apa yang perlu disiapkan sebelum memulai

Sebelum pengaturan, siapkan Scrapy, detail rute, kredensial, dan URL pengujian. Rencana middleware proxy Scrapy juga membutuhkan kepemilikan yang jelas, penyimpanan yang aman, dan log.

✅ Daftar periksa:

  • Proyek Scrapy
  • IP dan port
  • Login dan kata sandi
  • URL pengujian
  • Batas kecepatan
  • Log kesalahan

Cara mengatur proxy tunggal di Scrapy langkah demi langkah

Satu rute adalah pengujian pertama yang paling mudah. Dalam pengaturan ini, akses proxy Scrapy diteruskan melalui metadata permintaan dan ditangani oleh middleware bawaan.

  • Langkah 1. Aktifkan middleware proxy.
  • Langkah 2. Tambahkan rute ke request meta.
  • Langkah 3. Jalankan satu spider.
  • Langkah 4. Periksa kode status.

class DemoSpider(scrapy.Spider):

name = "demo"

start_urls = ["https://example.com"]

def start_requests(self):

for url in self.start_urls:

yield scrapy.Request(

url,

meta={"proxy": "http://user:pass@host:port"}

)

Gunakan httpproxymiddleware untuk alur kerja yang disetujui dan simpan rahasia di luar kode.

Cara menambahkan autentikasi proxy

Autentikasi mengonfirmasi bahwa skrip Anda boleh menggunakan rute tersebut. Untuk endpoint berbayar, middleware proxy Scrapy harus melindungi data login dan mendukung autentikasi proxy tanpa mengekspos kata sandi di repositori.

import base64

token = base64.b64encode(b"user:pass").decode()

headers = {"Proxy-Authorization": f"Basic {token}"}

yield scrapy.Request(

"https://example.com",

headers=headers,

meta={"proxy": "http://host:port"}

)

Simpan kredensial dalam variabel lingkungan. Rotasi kata sandi setelah ada perubahan staf.

Cara merotasi proxy dengan middleware

Rotasi membantu mendistribusikan permintaan ke endpoint yang disetujui. Alur kerja proxy rotasi Scrapy yang cermat mengubah rute antar permintaan sambil menjaga delay, log, dan batas tetap jelas.

  • Langkah 1. Simpan pool yang disetujui.
  • Langkah 2. Pilih satu rute untuk setiap permintaan.
  • Langkah 3. Lampirkan di middleware.
  • Langkah 4. Catat ID rute di log.

class ProxyMiddleware:

def __init__(self, routes):

self.routes = routes

@classmethod

def from_crawler(cls, crawler):

return cls(crawler.settings.getlist("PROXY_POOL"))

def process_request(self, request, spider):

request.meta["proxy"] = random.choice(self.routes)

Middleware proxy rotasi tidak boleh menggantikan kontrol kecepatan atau tinjauan kepatuhan.

Cara menyesuaikan DOWNLOAD_DELAY dan AUTOTHROTTLE

Pengaturan delay menjaga crawling tetap stabil. Pengaturan proxy rotasi Scrapy tetap harus menggunakan download delay dan autothrottle untuk menghindari lonjakan traffic yang tiba-tiba.

DOWNLOAD_DELAY = 2

AUTOTHROTTLE_ENABLED = True

AUTOTHROTTLE_START_DELAY = 1

AUTOTHROTTLE_MAX_DELAY = 10

CONCURRENT_REQUESTS = 8

Pantau waktu respons sebelum mengubah pengaturan.

Cara menangani retry dan pemblokiran

Retry harus memulihkan dari masalah jaringan sementara, bukan memaksa akses berulang. Pengaturan proxy Scrapy harus menggunakan batas retry yang moderat, jeda yang jelas, dan log yang menunjukkan alasan permintaan gagal.

💡 Tetapkan RETRY_TIMES setelah menguji tingkat kesalahan normal.

✅ Lakukan:

  • Gunakan batch kecil
  • Hormati robots.txt
  • Pantau kode status

❌ Jangan:

  • Retry tanpa henti
  • Abaikan pola 403 atau 429
  • Kelebihan beban pada halaman publik

Cara memverifikasi proxy berfungsi di Scrapy

Verifikasi mengonfirmasi bahwa permintaan melewati endpoint yang diharapkan sebelum pengumpulan data sungguhan dimulai. Alur middleware proxy Scrapy yang sudah diuji harus menunjukkan IP, wilayah, kode respons, dan waktu.

Yang perlu diperiksaHasil yang diharapkan
Alamat IPEndpoint yang dipilih
WilayahArea yang direncanakan
Kode statusRespons normal
KecepatanWaktu stabil

Kesalahan proxy Scrapy umum dan perbaikannya

Sebagian besar kegagalan berasal dari kredensial yang salah, rute mati, port, atau pengaturan yang terlalu cepat. Jika pengujian proxy Scrapy gagal, periksa satu variabel pada satu waktu daripada mengubah seluruh spider.

❌ Masalah umum:

  • Koneksi ditolak
  • Timeout
  • Kegagalan autentikasi
  • Terlalu banyak retry
KesalahanPenyebabPerbaikan
DitolakHost salahSalin ulang rute
TimeoutEndpoint lambatUji rute lain
Auth gagalLogin salahPerbarui kredensial
429Terlalu cepatTingkatkan delay

Catatan scraping etis (AS)

Scrapy dapat digunakan secara bertanggung jawab untuk data publik, QA, pemantauan, dan penelitian. Alur kerja proxy Scrapy yang sah menghormati robots.txt, ketentuan situs, batas data publik, dan batas kecepatan.

Untuk penggunaan di AS, dokumentasikan tujuan tugas, sumber, pemilik, dan penyimpanan. Proxy harus mendukung kepatuhan, bukan menyembunyikan perilaku abusif.

Memilih proxy yang andal untuk Scrapy

Penyedia yang baik menawarkan rute stabil, wilayah yang jelas, dukungan, dan harga dalam $. Untuk proyek lanjutan, proxy SOCKS5 Scrapy mungkin berguna ketika penyedia dan konektor mendukungnya.

FiturManfaat
Rute stabilLebih sedikit kegagalan
Wilayah jelasPengujian lebih baik
DukunganPerbaikan lebih cepat
HargaKontrol anggaran

Coba demo untuk satu spider, beli proxy setelah validasi, atau daftar untuk akses penuh.

Poin penting

TL;DR: proxy membantu Scrapy menjalankan alur kerja publik yang sah melalui rute yang terkontrol. Proxy Scrapy harus sesuai dengan target, batas kecepatan, dan log. Rotasi bekerja paling baik dengan delay dan pemantauan. Autentikasi harus disimpan dengan aman.

Pertanyaan yang sering diajukan

Bagaimana cara mengatur proxy di Scrapy?

Tambahkan rute ke metadata permintaan dan aktifkan middleware yang sesuai.

Bagaimana cara merotasi proxy di Scrapy?

Gunakan middleware khusus yang memilih satu rute yang disetujui untuk setiap permintaan.

Apakah Scrapy mendukung proxy SOCKS5?

Ya, dengan konektor dan dukungan penyedia yang tepat.

Bagaimana cara menambahkan autentikasi proxy di Scrapy?

Lewatkan kredensial secara aman melalui header, format rute, atau variabel lingkungan.

Bagaimana cara menghindari pemblokiran saat scraping dengan Scrapy?

Hormati robots.txt, ketentuan situs, batas kecepatan, dan batas data.

2026-07-15