🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

Cách xoay vòng proxy trong Python

Michael Lee
Michael Lee

Expert Network Defense Engineer

23-Sep-2025

Giới thiệu
Lưu thông tin proxy xoay vòng trong Python đảm bảo việc thu thập dữ liệu và tự động hóa web ổn định, đáng tin cậy. Sử dụng một địa chỉ IP đơn lẻ có thể dẫn đến việc bị chặn và giới hạn tốc độ. Hướng dẫn này sẽ đề cập đến 10 phương pháp thực tiễn để xoay vòng proxy một cách hiệu quả. Để có một giải pháp nhanh chóng và đơn giản hơn, hãy xem xét việc sử dụng Scrapeless, cái mà xử lý việc xoay vòng proxy tự động.


1. Sử dụng danh sách proxy một cách thủ công

Kết luận: Chuyển đổi proxy từ danh sách một cách thủ công giúp tránh bị phát hiện.

Các bước:

  1. Chuẩn bị một danh sách proxy (proxies = ["http://ip:port", ...]).
  2. Sử dụng random.choice(proxies) để chọn một proxy cho mỗi yêu cầu.
  3. Truyền proxy vào requests hoặc httpx:
python Copy
import requests, random

proxies = ["http://111.111.111.111:8080", "http://222.222.222.222:8080"]
proxy = random.choice(proxies)
response = requests.get("https://example.com", proxies={"http": proxy, "https": proxy})
print(response.text)

Ứng dụng: Thu thập dữ liệu quy mô nhỏ hoặc thử nghiệm nhiều điểm cuối mà không bị cấm.


2. Sử dụng xoay vòng proxy với phiên requests

Kết luận: Một đối tượng phiên cho phép sử dụng proxy nhất quán trên nhiều yêu cầu.

Các bước:

  1. Tạo requests.Session().
  2. Gán một proxy từ danh sách của bạn cho mỗi phiên.
python Copy
import requests, random

session = requests.Session()
proxies = ["http://111.111.111.111:8080", "http://222.222.222.222:8080"]
session.proxies.update({"http": random.choice(proxies), "https": random.choice(proxies)})
response = session.get("https://example.com")
print(response.status_code)

Ứng dụng: Khi thu thập dữ liệu từ các trang yêu cầu phiên kéo dài.


3. Sử dụng thư viện proxy của bên thứ ba

Kết luận: Các thư viện như requests-ip-rotator đơn giản hóa việc xoay vòng proxy.

Các bước:

python Copy
# Ví dụ với requests-ip-rotator
from requests_ip_rotator import ApiGatewaySession
session = ApiGatewaySession("https://example.com")
response = session.get("https://example.com")
print(response.text)

Ứng dụng: Tốt nhất cho các API hoặc yêu cầu thường xuyên cần xoay vòng IP.


4. Xoay vòng proxy sử dụng Tor

Kết luận: Tor cung cấp việc xoay vòng proxy miễn phí thông qua các mạch.

Các bước:

  1. Cài đặt Tor (sudo apt install tor) và thư viện Python stem.
  2. Kết nối qua proxy SOCKS của Tor (127.0.0.1:9050).
  3. Thay đổi IP bằng các lệnh Tor.
python Copy
import requests

proxies = {"http": "socks5h://127.0.0.1:9050", "https": "socks5h://127.0.0.1:9050"}
response = requests.get("https://example.com", proxies=proxies)
print(response.text)

Ứng dụng: Thu thập dữ liệu ẩn danh mà không phải trả tiền cho proxy.


5. Sử dụng nhà cung cấp proxy xoay vòng

Kết luận: Các nhà cung cấp trả phí đảm bảo độ tin cậy và tốc độ cao.

Các bước:

  1. Đăng ký dịch vụ như Luminati, ScraperAPI hoặc Scrapeless.
  2. Sử dụng các điểm cuối của họ với xác thực.
  3. Tự động xoay vòng proxy cho mỗi yêu cầu.
python Copy
import requests

api_key = "YOUR_API_KEY"
url = f"http://proxyprovider.com?api_key={api_key}&url=https://example.com"
response = requests.get(url)
print(response.text)

Ứng dụng: Các dự án thu thập dữ liệu quy mô lớn với thời gian ngừng tối thiểu.


6. Xoay vòng proxy trong Selenium

Kết luận: Tự động hóa web cần phải xoay vòng proxy để ngăn chặn việc bị cấm IP.

Các bước:

python Copy
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import random

proxies = ["111.111.111.111:8080", "222.222.222.222:8080"]
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={random.choice(proxies)}')
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://example.com")

Ứng dụng: Duyệt web tự động và thử nghiệm với nhiều IP.


7. Xoay vòng proxy trong Scrapy

Kết luận: Scrapy hỗ trợ middleware cho việc xoay vòng proxy.

Các bước:

  1. Bật HttpProxyMiddleware.
  2. Định nghĩa danh sách các proxy trong settings.py.
  3. Sử dụng middleware để xoay vòng cho mỗi yêu cầu.
python Copy
DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 1,
}
PROXY_LIST = ['http://111.111.111.111:8080', 'http://222.222.222.222:8080']

Ứng dụng: Thu thập dữ liệu quy mô lớn với spider của Scrapy.


8. Sử dụng xoay vòng proxy bất đồng bộ với httpx

Kết luận: Các thư viện bất đồng bộ cho phép yêu cầu đồng thời với nhiều proxy.

python Copy
import httpx, asyncio, random

proxies = ["http://111.111.111.111:8080", "http://222.222.222.222:8080"]

async def fetch(url):
    proxy = random.choice(proxies)
    async with httpx.AsyncClient(proxies={"http": proxy, "https": proxy}) as client:
        response = await client.get(url)
        print(response.status_code)

asyncio.run(fetch("https://example.com"))

Ứng dụng: Thu thập dữ liệu tốc độ cao cho nhiều URL.


9. Xoay vòng proxy tự động với Scrapeless

Kết luận: Scrapeless xử lý việc xoay vòng proxy tự động, đơn giản hóa phát triển.

Lợi ích:

  • Không cần quản lý danh sách proxy thủ công
  • Tích hợp với các script scraping bằng Python
  • Hỗ trợ độ đồng thời cao và độ tin cậy

Ứng dụng: Lý tưởng cho cả người mới bắt đầu và những chuyên gia tìm kiếm hiệu quả.


10. Proxy xoay vòng với biến môi trường

Kết luận: Thay đổi cấu hình proxy một cách động bằng cách sử dụng biến môi trường.

Các bước:

  1. Lưu trữ proxy trong tệp .env.
  2. Tải và chọn ngẫu nhiên proxy trong các script.
python Copy
import os, random
from dotenv import load_dotenv
import requests

load_dotenv()
proxies = os.getenv("PROXIES").split(",")
proxy = random.choice(proxies)
response = requests.get("https://example.com", proxies={"http": proxy, "https": proxy})

Ứng dụng: Hữu ích cho các pipeline scraping có thể cấu hình được.


Tóm tắt so sánh

Phương pháp Dễ sử dụng Chi phí Khả năng mở rộng Trường hợp sử dụng tốt nhất
Danh sách thủ công Dễ Miễn phí Thấp Dự án nhỏ
Phiên Requests Dễ Miễn phí Trung bình Các phiên kéo dài
Thư viện Proxy Trung bình Miễn phí/Tính phí Trung bình Gọi API
Tor Trung bình Miễn phí Thấp Scraping ẩn danh
Nhà cung cấp trả phí Dễ Tính phí Cao Scraping quy mô lớn
Selenium Trung bình Miễn phí/Tính phí Trung bình Nhiệm vụ tự động
Scrapy Trung bình Miễn phí Cao Dự án spider lớn
Async httpx Khó Miễn phí Cao Độ đồng thời cao
Scrapeless Rất dễ Tính phí Cao Giải pháp tất cả trong một
Biến môi trường Trung bình Miễn phí Trung bình Các pipeline có thể cấu hình

Lưu ý quan trọng

  • Proxy xoay vòng là điều cần thiết để ngăn chặn việc chặn và duy trì sự ổn định của quá trình scraping.
  • Python hỗ trợ nhiều phương pháp, từ danh sách thủ công đến các giải pháp async và tính phí.
  • Scrapeless cung cấp phương pháp xoay vòng dễ nhất và đáng tin cậy nhất.

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

H1: Tại sao tôi nên xoay vòng proxy trong Python?
Để tránh bị cấm IP, giới hạn tỷ lệ và đảm bảo quá trình scraping đáng tin cậy.

H2: Tôi có thể sử dụng proxy miễn phí cho việc xoay vòng không?
Có, nhưng độ tin cậy và tốc độ có thể thấp. Các dịch vụ trả phí được khuyến nghị cho các dự án lớn.

H3: Scrapeless có yêu cầu lập trình không?
Cần lập trình tối thiểu; nó tích hợp mượt mà với các script Python.

H4: Tôi có thể xoay vòng proxy trong Selenium không?
Có, bằng cách cấu hình các tùy chọn trình duyệt với các máy chủ proxy khác nhau.

H5: Tôi nên xoay vòng proxy bao lâu một lần?
Điều này phụ thuộc vào lưu lượng yêu cầu của bạn và chính sách của trang web mục tiêu.


Giải pháp được khuyến nghị

Để có trải nghiệm không phiền phức, hãy thử Scrapeless để tự động xử lý việc xoay vòng proxy và tập trung vào việc thu thập dữ liệu thay vì quản lý thủ công.


Tài liệu tham khảo

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục