Free Proxy Health List

Ảnh chụp trực tiếp · 55,863 proxies

Middleware proxy cho Scrapy

Middleware tải xuống cắm vào là chạy, đổi proxy mỗi yêu cầu và thử lại khi hỏng.

Middleware proxy cho Scrapy

1. middlewares.py

import itertools, random

class RotatingProxyMiddleware:
    def __init__(self):
        with open("proxies.txt") as handle:
            self.proxies = [line.strip() for line in handle if line.strip()]
        random.shuffle(self.proxies)
        self.pool = itertools.cycle(self.proxies)

    def process_request(self, request, spider):
        request.meta["proxy"] = f"http://{next(self.pool)}"

2. settings.py

DOWNLOADER_MIDDLEWARES = {
    "myproject.middlewares.RotatingProxyMiddleware": 350,
    "scrapy.downloadermiddlewares.retry.RetryMiddleware": 550,
}
RETRY_TIMES = 5
DOWNLOAD_TIMEOUT = 10

Vài lưu ý giúp tiết kiệm thời gian

Thứ tự rất quan trọng: middleware proxy phải chạy trước middleware thử lại, để mỗi lần thử lại chọn một proxy mới thay vì lặp lại cái đã hỏng. Giữ DOWNLOAD_TIMEOUT thấp — proxy miễn phí là mắt xích chậm nhất trong đường ống — và tăng RETRY_TIMES để hấp thụ tỷ lệ hỏng.

Hướng dẫn liên quan

Giới hạn của ảnh chụp công khai
Proxy công khai miễn phí được dùng chung và vận hành bởi các bên không rõ danh tính. Đừng bao giờ gửi mật khẩu, token hay dữ liệu cá nhân qua chúng. Hãy tuân thủ Chính sách Sử dụng Chấp nhận được của GitHub: không spam, không tấn công, không vượt kiểm soát truy cập, không thu thập trái chính sách của trang.