Thư viện Requests là phương pháp phổ biến nhất để gửi yêu cầu HTTP bằng Python. Đây là một trong những thư viện dễ sử dụng nhất. Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng. Requests so với các thư viện thay thế Python khác thường yêu cầu viết ít mã hơn để trích xuất dữ liệu. Những người đam mê thu thập dữ liệu web đều biết rằng một proxy chất lượng cao sẽ là tốt hơn cả. Các trang web ngày nay sử dụng các biện pháp chống bot tiên tiến để tự bảo vệ mình khỏi quá trình tự động hóa. Vì vậy, việc xây dựng và duy trì trình thu thập của riêng bạn bao gồm thiết lập một máy chủ proxy để tránh bị cấm địa chỉ IP hoặc các trở ngại khác. Dưới đây là hướng dẫn từng bước về cách thiết lập và xoay vòng proxy trong Python bằng Requests.
Cách sử dụng máy chủ proxy với Python Requests
Trước khi bắt đầu, bạn sẽ cần các điều kiện tiên quyết sau:
- Python 3. Bạn sẽ cần cài đặt phiên bản Python mới nhất.
- Requests. Bạn có thể thêm nó bằng cách chạy các yêu cầu cài đặt pip.
- Code editor. Sử dụng bất kỳ trình chỉnh sửa nào bạn chọn.
Cách thiết lập proxy với Requests: Cấu hình cơ bản
Bước 1. Để thiết lập proxy với Python Requests, hãy chạy lệnh khởi tạo:
import requests
Bước 2. Sau đó, thêm đối số proxy với thông tin proxy của bạn.
Proxy HTTP:
proxies = {
'http': 'http://host:PORT',
'https': 'http://host:PORT',
}
Proxy SOCKS5:
proxies = {
'http': 'socks5://host:PORT',
'https': 'socks5://host:PORT',
}
Bước 3. Bây giờ, hãy tạo một biến phản hồi và chuyển tham số proxy.
response = requests.get('URL', proxies = proxies)
Lưu ý: Bạn có thể sử dụng bất kỳ phương thức request nào như get(), post() hoặc put().
Cách xác thực proxy
Để xác thực proxy của bạn, hãy chuyển tên người dùng và mật khẩu cùng với cấu hình proxy.
proxies = {
'http': 'http://user:password@host:PORT',
'https': 'http://user:password@host:PORT',
}
response = requests.get('URL', proxies = proxies)
Cách thiết lập phiên proxy
Nếu muốn thực hiện nhiều yêu cầu với cùng một cấu hình proxy, bạn cần tạo một phiên và thêm proxy của mình. Bạn có thể làm điều đó bằng cách chuyển đối tượng phiên có cấu hình proxy của mình và gửi yêu cầu thông qua đối tượng đó.
session = requests.Session()
session.proxies = proxies
response = session.get('URL')
Cách thiết lập biến môi trường
Nếu muốn lưu trữ cấu hình proxy của mình để sử dụng trong tương lai, bạn sẽ cần đặt các biến môi trường. Bằng cách này, bạn có thể dễ dàng chuyển đổi giữa các cài đặt proxy khác nhau mà không cần sửa đổi mã của mình.
Bước 1. Tùy thuộc vào hệ điều hành của bạn, bạn có thể đặt/xuất các biến môi trường sang địa chỉ proxy và cổng.
Đối với người dùng Windows:
set http_proxy=http://username:password@:PORT
set https_proxy=http://username:password@:PORT
Đối với người dùng Linux:
export http_proxy=http://username:password@:PORT
export https_proxy=http://username:password@:PORT
Bước 2. Sau đó, nhập thư viện os và đặt từ điển proxy để sử dụng các biến môi trường.
import os
proxies = {
http: os.environ['http_proxy'],
https: os.environ['https_proxy']
}
requests.get('URL',proxies = proxies)
=>> Cách thu thập dữ liệu an toàn từ Wayback Machine
Cách xoay vòng proxy với Python Requests
Nếu bạn không muốn bị đưa vào danh sách đen hoặc bị giới hạn tỷ lệ bởi các trang web, trước tiên bạn sẽ cần một nhóm địa chỉ IP. Khi đó một dịch vụ proxy xoay IP sẽ là cần thiết để đáp ứng yêu cầu này. Nếu không, bạn sẽ phải thực hiện quá nhiều yêu cầu kết nối từ một IP và rất dễ bị cho vào danh sách hạn chế.
Bạn nên sử dụng dịch vụ proxy trả phí. IP miễn phí không đáng tin cậy, nó có thể bị chèn quảng cáo hoặc dễ dàng tiết lộ dữ liệu của bạn. Mặt khác, các proxy trả phí duy trì cơ sở hạ tầng an toàn với với chất lượng đảm bảo, vì vậy bạn sẽ ít bị chặn hơn.
Bước 1. Đầu tiên, nhập các thư viện sau:
import requests
import random
Bước 2. Sau đó, xác định danh sách địa chỉ IP bạn muốn sử dụng.
proxy_pool = ['user:password@host:3001', 'user:password@host:3002', 'user:password@host:3003']
Bước 3. Bây giờ, hãy xem qua 10 yêu cầu.
for i in range(10):
1) Chọn một proxy ngẫu nhiên từ nhóm của bạn.
proxy = {'http': random.choice(proxy_pool)}
2) Gửi yêu cầu bằng cùng một proxy.
response = requests.get('URL', proxies=proxy)
3) In phản hồi.
print(response.text)
Các yêu cầu đầy đủ được thể hiện như dưới đây:
import requests
import random
# Define your proxies
proxy_pool = ['user:password@host:3001', 'user:password@host:3002', 'user:password@host:3003']
# Going through 10 requests
for i in range(10):
# Select a random proxy from the pool
proxy = {'http': random.choice(proxy_pool)}
# Send the request using the same proxy
response = requests.get('URL', proxies = proxy)
# Print the response
print(response.text)
Trong hướng dẫn này, bạn đã biết cách sử dụng máy chủ proxy khi thực hiện các yêu cầu HTTP bằng Python Requests. Sử dụng proxy có thể giúp yêu cầu của bạn an toàn hơn hoặc ẩn danh hơn, cũng như ngăn IP của bạn bị chặn khi quét qua các trang web. Truy cập zingproxy.com để đăng ký dịch vụ proxy chất lượng cao cũng như biết thêm nhiều điều thú vị xoay quanh Proxy. Cảm ơn đã theo dõi bài viết!