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

Thiết lập proxy trong Scrapy

Một proxy trong Scrapy định tuyến các yêu cầu qua một điểm cuối được kiểm soát để thu thập dữ liệu công khai một cách đáng tin cậy. Việc thiết lập proxy Scrapy an toàn giúp hỗ trợ bản địa hóa, phân phối tải, giám sát và duy trì crawl ổn định. Tại Mỹ, sử dụng proxy chỉ cho các quy trình công khai hợp pháp, tuân thủ robots.txt, điều khoản dịch vụ và giới hạn tốc độ.

Tại sao các dự án Scrapy cần proxy

Các dự án Scrapy cần proxy khi một kết nối trực tiếp quá hạn chế để thu thập dữ liệu công khai đáng tin cậy. Quy trình làm việc với proxy Scrapy được lên kế hoạch tốt giúp các nhóm giảm lỗi kết nối, so sánh trang theo khu vực và giữ các bài kiểm tra có thể đo lường được.

✅ Các tình huống hợp pháp:

  • Giám sát trang sản phẩm công khai
  • Kiểm thử QA cho nội dung theo khu vực
  • Kiểm tra thời gian hoạt động và khả năng sẵn sàng
  • Xác thực dữ liệu nội bộ

Loại proxy nào phù hợp nhất cho Scrapy

Loại proxy phù hợp nhất phụ thuộc vào độ ổn định, thời gian phiên, giá cả và khu vực. Đối với các kiểm tra công khai dài hạn, một gói proxy xoay Scrapy có thể phân phối yêu cầu qua các tuyến được phê duyệt mà không biến tự động hóa thành spam.

LoạiĐộ ổn địnhPhù hợp nhất cho
ResidentialCaoTrang công khai theo khu vực
MobileTrung bìnhKiểm tra web trên mobile
ISPCaoPhiên dài
DatacenterTrung bìnhQA nội bộ

Những gì cần chuẩn bị trước khi bắt đầu

Trước khi thiết lập, hãy chuẩn bị Scrapy, thông tin tuyến, thông tin đăng nhập và URL kiểm thử. Kế hoạch middleware proxy Scrapy cũng cần quyền sở hữu rõ ràng, lưu trữ an toàn và nhật ký.

✅ Danh sách kiểm tra:

  • Dự án Scrapy
  • IP và cổng
  • Tên đăng nhập và mật khẩu
  • URL kiểm thử
  • Giới hạn tốc độ
  • Nhật ký lỗi

Cách thiết lập một proxy đơn trong Scrapy từng bước

Một tuyến là bài kiểm tra đơn giản nhất để bắt đầu. Trong thiết lập này, quyền truy cập proxy Scrapy được truyền qua siêu dữ liệu yêu cầu và xử lý bởi middleware tích hợp sẵn.

  • Bước 1. Kích hoạt proxy middleware.
  • Bước 2. Thêm tuyến vào request meta.
  • Bước 3. Chạy một spider.
  • Bước 4. Kiểm tra mã trạng thái.

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"}

)

Sử dụng httpproxymiddleware cho các quy trình được phê duyệt và giữ bí mật ngoài mã nguồn.

Cách thêm xác thực proxy

Xác thực xác nhận rằng script của bạn được phép sử dụng tuyến. Đối với các điểm cuối trả phí, middleware proxy Scrapy nên bảo vệ thông tin đăng nhập và hỗ trợ xác thực proxy mà không lộ mật khẩu trong các kho lưu trữ.

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"}

)

Lưu thông tin đăng nhập trong biến môi trường. Thay đổi mật khẩu sau khi nhân sự thay đổi.

Cách xoay proxy bằng middleware

Xoay proxy giúp phân phối yêu cầu qua các điểm cuối được phê duyệt. Quy trình làm việc với proxy xoay Scrapy cẩn thận thay đổi tuyến giữa các yêu cầu trong khi vẫn giữ độ trễ, nhật ký và giới hạn rõ ràng.

  • Bước 1. Lưu pool được phê duyệt.
  • Bước 2. Chọn một tuyến cho mỗi yêu cầu.
  • Bước 3. Gắn nó vào middleware.
  • Bước 4. Ghi nhật ký ID tuyến.

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 xoay proxy không bao giờ được thay thế kiểm soát tốc độ hoặc đánh giá tuân thủ.

Cách điều chỉnh DOWNLOAD_DELAY và AUTOTHROTTLE

Cài đặt độ trễ giúp crawl ổn định. Thiết lập proxy xoay Scrapy vẫn nên sử dụng độ trễ tải và tự động điều tiết để tránh tăng đột biến lưu lượng.

DOWNLOAD_DELAY = 2

AUTOTHROTTLE_ENABLED = True

AUTOTHROTTLE_START_DELAY = 1

AUTOTHROTTLE_MAX_DELAY = 10

CONCURRENT_REQUESTS = 8

Theo dõi thời gian phản hồi trước khi thay đổi cài đặt.

Cách xử lý retry và cấm

Retry nên phục hồi từ sự cố mạng tạm thời, không ép buộc truy cập lặp lại. Thiết lập proxy Scrapy nên sử dụng giới hạn retry khiêm tốn, khoảng nghỉ rõ ràng và nhật ký cho thấy lý do yêu cầu thất bại.

💡 Đặt RETRY_TIMES sau khi kiểm tra tỷ lệ lỗi bình thường.

✅ Nên:

  • Sử dụng nhóm nhỏ
  • Tôn trọng robots.txt
  • Giám sát mã trạng thái

❌ Không nên:

  • Retry mãi mãi
  • Bỏ qua mẫu 403 hoặc 429
  • Quá tải trang công khai

Cách xác minh proxy hoạt động trong Scrapy

Xác minh khẳng định rằng các yêu cầu đi qua điểm cuối mong đợi trước khi bắt đầu thu thập thực tế. Quy trình middleware proxy Scrapy đã kiểm thử nên hiển thị IP, khu vực, mã phản hồi và thời gian.

Điều cần kiểm traKết quả mong đợi
Địa chỉ IPĐiểm cuối đã chọn
Khu vựcVùng đã lên kế hoạch
Mã trạng tháiPhản hồi bình thường
Tốc độThời gian ổn định

Các lỗi proxy Scrapy phổ biến và cách khắc phục

Hầu hết sự cố đến từ thông tin đăng nhập sai, tuyến đã hết, cổng hoặc cài đặt quá nhanh. Nếu kiểm thử proxy Scrapy thất bại, hãy kiểm tra từng biến một thay vì thay đổi toàn bộ spider.

❌ Các vấn đề phổ biến:

  • Kết nối bị từ chối
  • Timeout
  • Xác thực thất bại
  • Quá nhiều retry
LỗiNguyên nhânKhắc phục
Bị từ chốiSai hostSao chép lại tuyến
TimeoutĐiểm cuối chậmThử tuyến khác
Xác thực thất bạiSai đăng nhậpLàm mới thông tin đăng nhập
429Quá nhanhTăng độ trễ

Lưu ý về scrape có đạo đức (Mỹ)

Scrapy có thể được sử dụng có trách nhiệm cho dữ liệu công khai, QA, giám sát và nghiên cứu. Quy trình proxy Scrapy hợp pháp tôn trọng robots.txt, điều khoản trang web, giới hạn dữ liệu công khai và giới hạn tốc độ.

Đối với sử dụng tại Mỹ, hãy ghi lại mục tiêu tác vụ, nguồn, chủ sở hữu và thời gian lưu trữ. Proxy nên hỗ trợ tuân thủ, không che giấu hành vi lạm dụng.

Chọn proxy đáng tin cậy cho Scrapy

Nhà cung cấp tốt cung cấp các tuyến ổn định, khu vực rõ ràng, hỗ trợ và giá cả bằng $. Đối với các dự án nâng cao, proxy SOCKS5 cho Scrapy có thể hữu ích khi nhà cung cấp và connector hỗ trợ nó.

Tính năngLợi ích
Tuyến ổn địnhÍt lỗi hơn
Khu vực rõ ràngKiểm thử tốt hơn
Hỗ trợSửa lỗi nhanh hơn
Giá cảKiểm soát ngân sách

Thử bản demo cho một spider, mua proxy sau khi xác thực, hoặc đăng ký để truy cập đầy đủ.

Tóm tắt chính

TL;DR: proxy giúp Scrapy chạy các quy trình công khai hợp pháp qua các tuyến được kiểm soát. Proxy Scrapy nên phù hợp với mục tiêu, giới hạn tốc độ và nhật ký. Xoay proxy hoạt động tốt nhất với độ trễ và giám sát. Xác thực phải được lưu trữ an toàn.

Các câu hỏi thường gặp

Cách thiết lập proxy trong Scrapy?

Thêm tuyến vào siêu dữ liệu yêu cầu và kích hoạt middleware phù hợp.

Cách xoay proxy trong Scrapy?

Sử dụng middleware tùy chỉnh chọn một tuyến được phê duyệt cho mỗi yêu cầu.

Scrapy có hỗ trợ proxy SOCKS5 không?

Có, với connector phù hợp và hỗ trợ nhà cung cấp.

Cách thêm xác thực proxy trong Scrapy?

Truyền thông tin đăng nhập an toàn qua headers, định dạng tuyến hoặc biến môi trường.

Cách tránh bị cấm khi scrape bằng Scrapy?

Tôn trọng robots.txt, điều khoản trang web, giới hạn tốc độ và giới hạn dữ liệu.

2026-07-15