Cara mengatur dan merotasi proxy di Python Scrapy

Diperbarui:

Mesin asinkron Twisted pada Scrapy menyertakan HttpProxyMiddleware bawaan (berjalan pada prioritas 750) yang secara otomatis membaca string http://user:pass@ip:port pada request.meta['proxy']. Hanya dengan menulis Downloader Middleware kustom sepanjang 10 baris pada prioritas 740, spider Anda dapat merotasi permintaan ke seluruh pool IP statis tanpa batas kuota dari VinaProxy secara otomatis.

Scrapy · HTTP Proxy Format
request.meta['proxy'] = 'http://user:pass@ip:port'
IPv4 private (datacenter)
🇺🇸 United States
Tersedia
Mulai
₫20.000 / IP / bulan
≈ US$0,74 · ditagih dalam VND
Harga grosir volume
  • 1 IP₫40.000
  • 5+ IP₫35.000
  • 10+ IP₫25.000
  • 20+ IP₫25.000
  • 50+ IP₫25.000
  • 100+ IP₫25.000
  • 200+ IP₫25.000
  • 500+ IP₫25.000
  • 1000+ IP₫22.000
  • 2000+ IP₫20.000
Beli United States
IPv4 private (datacenter)
🇬🇧 United Kingdom
Tersedia
Mulai
₫20.000 / IP / bulan
≈ US$0,74 · ditagih dalam VND
Harga grosir volume
  • 1 IP₫40.000
  • 5+ IP₫35.000
  • 10+ IP₫25.000
  • 20+ IP₫25.000
  • 50+ IP₫25.000
  • 100+ IP₫25.000
  • 200+ IP₫25.000
  • 500+ IP₫25.000
  • 1000+ IP₫22.000
  • 2000+ IP₫20.000
Beli United Kingdom

Urutan middleware proxy Scrapy dan konfigurasi konkurensi

Karena HttpProxyMiddleware bawaan berjalan pada prioritas 750 untuk memisahkan user:pass dari URL proxy dan mengonversinya menjadi header Proxy-Authorization, setiap middleware kustom yang mengatur request.meta['proxy'] harus berjalan dengan nomor lebih rendah (misalnya 740):

Pengaturan ScrapyNilai RekomendasiFungsi dan Alasan Teknis
request.meta['proxy']'http://user:pass@ip:port'Mengarahkan permintaan jaringan melalui titik proxy VinaProxy yang dipilih
Prioritas Middleware740 (sebelum 750)Memastikan HttpProxyMiddleware dapat mengodekan header autentikasi
CONCURRENT_REQUESTS_PER_IP2 hingga 4Membatasi soket simultan per IP proxy untuk menghindari blokir HTTP 429
AUTOTHROTTLE_ENABLEDTrueMenyesuaikan jeda crawl secara dinamis sesuai latensi server target

Praktik terbaik untuk crawling Scrapy volume tinggi

  • Muat daftar proxy VinaProxy di metode from_crawler() dan atur request.meta['proxy'] = random.choice(self.proxies) di dalam process_request()
  • Aktifkan RANDOMIZE_DOWNLOAD_DELAY = True bersama dengan DOWNLOAD_DELAY = 1.0 agar interval permintaan tiap IP tidak terbaca seperti pola bot
  • Saat terjadi percobaan ulang (429 atau 503), ambil proxy berbeda dari pool Anda sebelum memasukkan kembali permintaan ke antrean

Langkah demi langkah

  1. 1

    Format pool proxy Anda menjadi http://user:pass@ip:port

    Tempel daftar proxy VinaProxy Anda ke Alat Konversi Format Proxy kami untuk mendapatkan string URL siap pakai.

  2. 2

    Buat ProxyPoolMiddleware di file middlewares.py

    Definisikan process_request(self, request, spider) dengan request.meta['proxy'] = random.choice(self.proxies).

  3. 3

    Daftarkan dengan prioritas 740 di settings.py

    Tambahkan 'myproject.middlewares.ProxyPoolMiddleware': 740 pada DOWNLOADER_MIDDLEWARES dan setel CONCURRENT_REQUESTS_PER_IP = 2.

  4. 4

    Uji dengan scrapy shell atau perintah crawl

    Jalankan request percobaan ke https://vinaproxy.com/api/my-ip untuk memastikan rotasi IP dan autentikasi berjalan sempurna.

Pertanyaan umum

Mengapa middleware proxy Scrapy kustom saya gagal saat diatur ke prioritas 800?

Middleware bawaan Scrapy HttpProxyMiddleware berjalan pada prioritas 750. Jika middleware Anda disetel pada 800 (setelah 750), kredensial user:pass pada URL tidak akan pernah diubah menjadi header Proxy-Authorization. Selalu tentukan prioritas di bawah 750 (seperti 740).

Apakah Scrapy mempertahankan koneksi persisten ke setiap proxy?

Ya. Connection pool Twisted mempertahankan koneksi persisten TCP keep-alive ke tiap titik akhir proxy untuk menghemat waktu handshake.

Apakah proxy VinaProxy memiliki batasan kuota untuk pekerjaan Scrapy jutaan halaman?

Tidak. Seluruh paket IPv4 Dedicated dan ISP Statis VinaProxy sudah termasuk kuota transfer data bulanan tanpa batas.

Tingkatkan skala spider Scrapy Anda dengan pool IP statis tanpa kuota

Proxy IPv4 Dedicated dan ISP Statis dalam jumlah besar di 7 negara dengan pengiriman instan.

Beli Proxy Scrapy

Artikel terkait

Proxy per platform
Proxy untuk Web Scraping: pool IPv4 & ISP khusus tanpa kuota untuk crawler 24/7
Proxy HTTP(S) IPv4 khusus dan ISP statis kecepatan tinggi untuk Python, Playwright, Selenium, dan Scrapy dengan bandwidth bulanan tanpa batas.
Cara setting proxy
Cara menggunakan proxy di Python Requests (HTTP/HTTPS & Session pooling)
Konfigurasi proxy HTTP(S) berotentikasi di Python requests dan requests.Session(). Atasi error 407 ProxyError dan rotasikan pool IP statis.
Cara setting proxy
Cara mengatur proxy di Playwright (Autentikasi Browser & Per-Context)
Konfigurasi proxy HTTP(S) berotentikasi di Playwright untuk Node.js dan Python. Jalankan banyak IP statis terisolasi di berbagai BrowserContext.
Tools gratis
Konverter Format Proxy Massal (100% Aman di Sisi Browser)
Alat pengubah format daftar proxy massal 100% client-side. Konversi antara ip:port:user:pass, user:pass@ip:port, URL http://, URI SOCKS5, array JSON, dan impor FoxyProxy.
Proxy per platform
Proxy untuk SEO & Pelacakan SERP: peringkat kata kunci akurat di 7 negara
Pantau peringkat kata kunci lokal, periksa geo-redirect, dan jalankan audit Screaming Frog dengan proxy IPv4 khusus dan ISP statis tanpa batas kuota.
Proxy per platform
Proxy untuk Amazon: lindungi akun Seller Central, KDP, dan Merch dengan IP statis
Cegah suspend akun tertaut (Related Accounts) di Amazon Seller Central, KDP, dan Merch. Proxy Static ISP AS dan IPv4 privat Inggris/Jepang.
IPV4 · united states
Proxy IPv4 Private US: IP Datacenter Amerika Cepat dan Dedicated
Proxy IPv4 private US untuk scraping, rank tracking, verifikasi iklan, dan riset Amazon. IP statis, satu pengguna per IP, bandwidth tanpa batas.
IPV4 · united kingdom
Proxy IPv4 Private Inggris: IP Datacenter Inggris Statis untuk Seller, SEO, dan Iklan
Proxy IPv4 private Inggris untuk riset eBay UK dan Amazon.co.uk, tracking google.co.uk, serta akun media sosial Inggris. Bandwidth tanpa batas.