Selenium là một công cụ chủ yếu được sử dụng để thử nghiệm web và tự động hóa trình duyệt. Nó cho phép bạn điều khiển headless browsers theo chương trình như: mở trang web, chụp ảnh màn hình và tương tác với trang. Với sự phổ biến ngày càng tăng của JavaScript, webscraping, thì bạn có thể tìm thấy sức mạnh của Selenium trong việc xử lý các trang web động. Tuy nhiên, bạn sẽ không thể thực hiện nhiều thao tác quét hoặc kiểm tra trang web nếu không có máy chủ proxy, vì các trang web rất nghiêm ngặt đối với quá trình tự động hóa nặng. Đó là lý do tại sao bạn cần một máy chủ proxy như một máy tính trung gian giữa bạn và internet. Hướng dẫn này sẽ chỉ cho bạn cách thiết lập máy chủ proxy với Selenium bằng Python và cách xử lý xác thực proxy.
Trước tiên, bạn cần cài đặt Python 3. Hầu hết các nền tảng đều có nó theo mặc định, vì vậy bạn có thể kiểm tra xem mình có làm như vậy không bằng lệnh sau:
python --version
Nó sẽ trả về kết quả như thế này:
Python 3.11.2
Nếu nó dẫn đến lỗi hoặc phiên bản in ra là 2.x, bạn nên tải xuống Python 3.x và làm theo hướng dẫn cài đặt để thiết lập.
Tiếp theo, khởi tạo một dự án Python mới và thêm gói liên kết Selenium Python:
pip install selenium
Selenium có thể kiểm soát nhiều trình duyệt, nhưng chúng tôi sẽ sử dụng Google Chrome vì đây là trình duyệt được sử dụng nhiều nhất. Đảm bảo bạn đã cài đặt phiên bản Chrome mới nhất.
Bây giờ, hãy thêm trình quản lý WebDriver vào dự án của bạn:
pip install webdriver-manager
Đó là gói Python giúp đơn giản hóa việc quản lý trình điều khiển. Cụ thể, nó giúp bạn không phải tải xuống phiên bản ChromeDriver mới mỗi khi Chrome được nâng cấp.
Đoạn mã dưới đây sẽ nhập các công cụ, khởi chạy một phiên bản Chrome WebDriver và sử dụng nó để truy cập một trang mục tiêu mẫu.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get('https://example.com/')
Vậy là bạn vừa biết cách bắt đầu với Selenium trong Python. Hãy xem các hướng dẫn thiết lập proxy với Selenium bằng Python dưới đây.
Cách thiết lập proxy bằng Selenium Wire
Nếu bạn đã mua proxy, rất có thể bạn sẽ cần xác thực proxy của mình trước khi có thể bắt đầu sử dụng chúng. Nếu không, bạn sẽ không thể chạy nó trong Selenium. Tùy thuộc vào quy mô dự án của bạn, bạn có thể sử dụng Selenium với trình duyệt thông thường hoặc headless browser. Trong ví dụ này, chúng tôi sẽ chỉ cho bạn cách thiết lập và xác thực proxy bằng headless browser.
Trước tiên, bạn sẽ cần cài đặt Selenium Wire để mở rộng các liên kết Python của Selenium. Khi bạn cần xác thực proxy của mình, mô-đun Selenium mặc định sẽ làm cho quy trình trở nên phức tạp.
Bước 1. Cài đặt Selenium Wire và nhập WebDriver:
pip install selenium-wire
from seleniumwire import webdriver
Bước 2. Chúng tôi khuyên bạn nên cài đặt trình quản lý WebDriver để không cần tải xuống Selenium sau mỗi lần cập nhật.
pip install webdriver-manager
Bước 3. Thêm proxy của bạn vào đối số tùy chọn mà bạn chuyển đến WebDriver.
Với proxy SOCKS5, quy trình xác thực tương tự như proxy HTTP(S). Bạn chỉ cần đặt cơ chế thành socks5. Nếu proxy của bạn không yêu cầu xác thực, hãy loại trừ ‘user’ và ‘password’. Xác thực proxy SOCKS5 của bạn bằng cách chỉ định tên người dùng và mật khẩu của bạn trong URL.
Proxy SOCKS5 là lựa chọn đáng tin cậy để kết hợp với Selenium
Sử dụng Proxy xoay IP trong Selenium với Python
Nếu tập lệnh của bạn thực hiện một số yêu cầu trong một khoảng thời gian ngắn, máy chủ có thể coi tập lệnh đó là đáng ngờ và chặn IP của bạn. Tuy nhiên, điều đó sẽ không xảy ra với proxy xoay IP. IP cuối của bạn sẽ liên tục thay đổi để mỗi lần bạn xuất hiện với tư cách là một người dùng khác, ngăn không cho máy chủ cấm bạn. Đó là sức mạnh của proxy xoay IP.
Đã đến lúc tìm hiểu cách xây dựng proxy xoay IP trong Selenium bằng selenium wire. Trước tiên, bạn phải tìm một nhóm proxy. Trong ví dụ này, chúng tôi sẽ sử dụng proxy của ZingProxy.
Sau đó, trích xuất một proxy ngẫu nhiên bằng random.choice() và sử dụng nó để khởi tạo phiên bản trình điều khiển mới:
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
import random
# the list of proxy to rotate on
PROXIES = [
'http://19.151.94.248:88',
'http://149.169.197.151:80',
# ...
'http://212.76.118.242:97'
]
# randomly extract a proxy
random_proxy = random.choice(PROXIES)
# set the proxy in Selenium Wire
seleniumwire_options = {
'proxy': {
'http': f'{random_proxy}',
'https': f'{random_proxy}',
'verify_ssl': False,
},
}
# create a ChromeDriver instance
driver = webdriver.Chrome(
service=ChromeService(ChromeDriverManager().install()),
seleniumwire_options=seleniumwire_options
)
driver.visit('https://example.com/')
# scraping logic...
driver.quit()
# visit other pages...
Lặp lại logic này mỗi khi bạn muốn truy cập một trang mới. Vậy là bạn đã xây dựng một proxy luân phiên Selenium.
Lưu ý: Hầu hết các yêu cầu sẽ không thành công nếu sử dụng nguồn proxy miễn phí, vì proxy miễn phí dễ bị lỗi. Đó là lý do tại sao bạn nên lựa chọn những proxy trả phí chất lượng cao, hoặc thử lại với thời gian chờ ngẫu nhiên.
Hãy thử kiểm tra logic xoay vòng IP đối với mục tiêu sử dụng công nghệ chống bot:
Máy chủ mục tiêu đã phát hiện yêu cầu Selenium với proxy xoay IP dưới dạng bot và phản hồi bằng lỗi 403 Unauthorized.
Giao diện hiển thị lỗi 403 Unauthorized
Hướng dẫn này đã chỉ ra cách thiết lập proxy với Selenium bằng Python. Hãy nhớ rằng việc sử dụng proxy trong Selenium giúp bạn tránh bị cấm IP. Tuy nhiên, một số công nghệ chống thu thập dữ liệu vẫn có thể chặn bạn. Để lại những câu hỏi cần giải đáp phía dưới phần bình luận để chúng tôi có thể hỗ trợ bạn một cách nhanh nhất!
Tra cứu mã bưu chính Việt Nam 2026 sau sáp nhập là bước nên làm trước khi gửi hàng, điền billing hoặc khai báo tài khoản. Nhiều người vẫn quen dùng địa chỉ cũ nên cùng một địa chỉ nhưng lúc nhận được hàng, lúc hệ thống lại báo sai ZIP code. Từ 2025 đến […]
Với team Marketing làm nhiều tài khoản quảng cáo, shop thương mại điện tử hoặc hệ thống khách hàng, việc nhiều người cùng đăng nhập từ các mạng khác nhau luôn là điểm rủi ro lớn. Chỉ cần IP thay đổi liên tục, thiết bị không đồng nhất hoặc phân quyền lỏng, tài khoản có […]
Không ít game thủ gặp cùng một tình huống: mạng trong nước vẫn bình thường, nhưng cứ vào game quốc tế là ping tăng mạnh ngay sau khi đứt cáp. Điều đáng nói là có người chỉ cần đổi sang Proxy/VPN là chơi mượt hơn thấy rõ. Vậy vấn đề nằm ở game, ở nhà […]
Trong bối cảnh hệ sinh thái quảng cáo kỹ thuật số toàn cầu ngày càng phát triển với các mô hình mua bán tự động (Programmatic Advertising) tinh vi, việc đảm bảo từng đồng ngân sách được chi trả đúng vị trí, đúng đối tượng chưa bao giờ trở nên cấp thiết đến thế. Đối […]
Trong kỷ nguyên số, khi ranh giới giữa an toàn và bị xâm nhập chỉ cách nhau vài mili-giây, các biện pháp bảo mật đơn lớp (single-layer) như VPN hay Proxy truyền thống đang dần mất đi vị thế độc tôn trước các hệ thống giám sát và phân tích lưu lượng bằng AI. Đối […]
Trong hơn hai thập kỷ, an ninh mạng doanh nghiệp vận hành dựa trên tư duy “Lâu đài và Hào nước” (Castle-and-Moat). Chiến lược này giả định rằng vành đai mạng là ranh giới tuyệt đối: mọi thứ bên ngoài là nguy hiểm, còn mọi thứ bên trong mạng nội bộ (LAN) là đáng tin […]