1. Proxy-server là gì?
Một chút về mạng
Proxy-server giống như là nhân viên bí mật riêng của bạn trong không gian mạng. Hãy tưởng tượng bạn muốn ẩn danh trên mạng và cần một người trung gian để gửi yêu cầu của bạn đến server, rồi trả lời lại bạn, đồng thời giấu địa chỉ IP thật của bạn. Proxy-server chính là làm việc đó — truyền yêu cầu của bạn ẩn danh và gửi lại phản hồi.
Các loại proxy-server
Trước khi chúng ta đi vào mã nguồn, hãy cùng điểm qua một chút các loại proxy-server. Chúng có nhiều loại, mỗi loại phù hợp với mục đích sử dụng và đặc điểm khác nhau:
- HTTP-proxy: Được dùng để xử lý các yêu cầu HTTP. Rất phù hợp cho việc duyệt web thông thường.
- HTTPS-proxy: Xử lý các yêu cầu HTTPS đã mã hóa. Quan trọng cho kết nối an toàn.
- SOCKS-proxy: Đa năng hơn và có thể làm việc với bất kỳ loại lưu lượng nào. Lựa chọn tốt nhất khi bạn cần sự linh hoạt tối đa.
2. Cài đặt proxy-server trong Python
Cài đặt proxy-server trong Python dễ dàng như việc thuyết phục mèo không ngồi trên bàn phím. Chúng ta sẽ
sử dụng thư viện requests
, giúp dễ dàng cung cấp các tham số proxy cho các kết nối HTTP và HTTPS.
Cài đặt thư viện requests
Nếu vì lý do nào đó thư viện requests
của bạn chưa được cài đặt, đây là lúc để sửa chữa.
Hãy làm như sau:
import requests
# Xác định proxy-server cho các yêu cầu HTTP và HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Thực hiện yêu cầu qua proxy
response = requests.get('http://example.com', proxies=proxies)
# In kết quả
print(response.text)
pip install requests
Ví dụ sử dụng proxy-server
Bây giờ chúng ta sẽ xem cách gửi yêu cầu qua proxy-server. Chúng ta sẽ sử dụng tính năng của thư viện
requests
.
import requests
# Xác định proxy-server cho các yêu cầu HTTP và HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Thực hiện yêu cầu qua proxy
response = requests.get('http://example.com', proxies=proxies)
# In kết quả
print(response.text)
Hãy chú ý đến cách định dạng chuỗi proxy. Ở đây, nhiệm vụ của bạn là thay thế
your.proxy.server:port
bằng URL và cổng của proxy-server mà bạn sử dụng. Trên mạng có rất
nhiều proxy-server miễn phí và trả phí. Nếu các proxy-server miễn phí là thí sinh của cuộc thi "Hoa hậu
Hoàn vũ", chúng chắc chắn sẽ chiếm ưu thế lớn.
3. Ưu điểm của việc sử dụng proxy-server
Vượt qua giới hạn
Proxy-server cho phép chúng ta vượt qua các giới hạn tần suất yêu cầu do một số trang web áp đặt. Bằng cách xoay vòng proxy-server, bạn có thể thay đổi địa chỉ IP và tránh bị chặn. Điều này giống như thay đĩa trong máy phát nhạc — script của bạn sẽ không bị nhàm chán.
Giữ ẩn danh
Bằng cách sử dụng proxy, bạn có thể giữ ẩn danh hành động của mình. Điều này đặc biệt quan trọng khi bạn muốn tránh giới hạn theo IP. Về cơ bản, điều này cho phép bạn "hóa trang" trước mắt server từ xa.
4. Xoay vòng proxy-server
Hãy tưởng tượng việc xoay vòng proxy-server giống như quay bánh xe roulette — không ai biết nó sẽ dừng ở đâu. Trong trường hợp của chúng ta, xoay vòng cần thiết để sử dụng các địa chỉ IP khác nhau khi thực hiện scraping và tránh bị nghi ngờ từ server.
import random
# Danh sách các proxy-server sẵn có
proxy_list = [
'http://proxy1:port',
'http://proxy2:port',
'http://proxy3:port'
]
def get_random_proxy():
return random.choice(proxy_list)
proxies = {
'http': get_random_proxy(),
'https': get_random_proxy()
}
# Thực hiện yêu cầu qua proxy được chọn ngẫu nhiên
response = requests.get('http://example.com', proxies=proxies)
print(response.text)
Xoay vòng toàn diện
Bạn có thể cải thiện script của mình bằng cách thêm logic kiểm tra tính khả dụng của proxy và thay thế chúng nếu không khả dụng. Bằng cách này, bạn sẽ sử dụng được danh sách proxy đáng tin cậy.
GO TO FULL VERSION