Integrasi dengan Python Scrapy
Pelajari cara mengkonfigurasi crawler Python Scrapy untuk menghalakan permintaan melalui port XProxy serta melaksanakan middleware tersuai bagi mengendalikan putaran IP automatik pada titik penting permintaan.
Mengapa menggunakan Scrapy dengan XProxy?
Scrapy ialah rangka kerja pengikisan (scraping) Python tak segerak yang direka untuk pengikisan data berprestasi tinggi. Apabila menjalankan scraper dengan daya pemprosesan tinggi, penggunaan proksi awan bermeter membawa kepada kos bulanan yang besar. Menjalankan Scrapy melalui farm XProxy anda sendiri dengan kad SIM tempatan menyediakan saluran paip data tanpa had, menjimatkan ribuan dolar sambil memanfaatkan IP CGNAT operator yang dinamik.

Konfigurasi proksi asas dalam Scrapy
Cara paling mudah untuk menggunakan XProxy dalam Scrapy ialah dengan mengkonfigurasi HttpProxyMiddleware standard dan menambah tetapan proksi terus ke settings.py atau menentukannya bagi setiap permintaan.
Pilihan A: Konfigurasi global dalam settings.py
Buka settings.py projek Scrapy anda dan tambah tetapan berikut:
# Enable the default HTTP Proxy Middleware
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
# Define your XProxy SOCKS5 or HTTP proxy URL
# Replace 192.168.6.7:5001 with your XProxy server IP and port
HTTP_PROXY = 'http://your_username:[email protected]:5001'
# Set proxy to environment variable (or configure in custom middleware)Pilihan B: Lulus proksi secara dinamik bagi setiap Request
Anda juga boleh menetapkan sambungan proksi terus di dalam fail spider anda kepada permintaan individu:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
def start_requests(self):
urls = ['https://httpbin.org/ip']
for url in urls:
yield scrapy.Request(
url=url,
callback=self.parse,
meta={
# Route this specific request through XProxy port 5001
'proxy': 'http://your_username:[email protected]:5001'
}
)
def parse(self, response):
self.logger.info(f"Response: {response.text}")Lanjutan: Middleware putaran IP automatik
Untuk merotasi IP mudah alih XProxy anda secara automatik apabila Google memaparkan CAPTCHA, atau selepas bilangan permintaan halaman tertentu, laksanakan middleware Scrapy tersuai:
import time
import requests
from scrapy.exceptions import NotConfigured
class XProxyRotationMiddleware:
def __init__(self, rotate_url, request_limit=100):
self.rotate_url = rotate_url
self.request_limit = request_limit
self.request_count = 0
@classmethod
def from_crawler(cls, crawler):
# Read settings from settings.py
rotate_url = crawler.settings.get('XPROXY_ROTATE_URL')
request_limit = crawler.settings.getint('XPROXY_REQUEST_LIMIT', 100)
if not rotate_url:
raise NotConfigured
return cls(rotate_url, request_limit)
def process_request(self, request, spider):
self.request_count += 1
# Trigger rotation if limit reached
if self.request_count >= self.request_limit:
spider.logger.info("Request limit reached. Triggering XProxy IP rotation...")
self._trigger_rotation(spider)
self.request_count = 0
def _trigger_rotation(self, spider):
try:
response = requests.get(self.rotate_url)
spider.logger.info(f"IP rotation triggered: {response.status_code} - {response.text}")
# Wait for 6 seconds for cellular reconnection
time.sleep(6)
except Exception as e:
spider.logger.error(f"Failed to trigger rotation: {str(e)}")Aktifkan middleware dalam settings.py anda:
DOWNLOADER_MIDDLEWARES = {
'myproject.middlewares.XProxyRotationMiddleware': 350,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
# The XProxy Rotation API URL for your device position
XPROXY_ROTATE_URL = 'http://192.168.6.7:8081/api/v1/rotate_ip/position/1'
# Rotate the IP address after every 150 requests
XPROXY_REQUEST_LIMIT = 150Why High-Quality SOCKS5 UDP & Mobile Proxies Matter for Python Scrapy Crawlers
Using cheap datacenter proxies or basic HTTP proxies in antidetect profiles leads to instant account suspensions on Facebook, Google, TikTok, and Amazon. Here is why XProxy's self-hosted 4G/5G mobile proxies deliver superior anonymity and trust:
- SOCKS5 with Full UDP Support: Unlike standard HTTP proxies that drop UDP packets, XProxy SOCKS5 proxies fully support UDP datagrams. This ensures WebRTC, DNS queries, and real-time audio/video sockets route securely through your proxy without revealing your real IP address.
- Instant REST API IP Rotation: Trigger cellular IP rotation on demand via simple HTTP GET requests (e.g.
http://192.168.6.7:8081/api/v1/rotate_ip/position/1). Reconnect 4G/5G USB modems in 3 to 8 seconds with zero proxy dropouts. - 100% WebRTC & DNS Leak Protection: Combined with XProxy's local LAN gateway and TCP OS Spoofing, your browser profiles maintain pristine anonymity scores on BrowserLeaks, Whoer, Pixelscan, and IPhey.
- Carrier-Grade NAT (CGNAT) Trust: Mobile carrier IPs are shared by thousands of active smartphone users. Major platforms never ban mobile IP ranges, granting your accounts maximum trust.
