Khi bạn sử dụng proxy, bạn không kết nối trực tiếp đến máy chủ đích; thay vào đó, bạn chuyển hướng yêu cầu của mình đến máy chủ proxy để đánh giá và trả về phản hồi. Proxy có nhiều lợi ích, chẳng hạn như chúng ẩn địa chỉ IP thực của bạn, bỏ qua bộ lọc, kiểm duyệt, v.v. Đôi khi, việc thực hiện quét web nâng cao rất khó khăn
Khi bạn sử dụng proxy, bạn không kết nối trực tiếp đến máy chủ đích; thay vào đó, bạn chuyển hướng yêu cầu của mình đến máy chủ proxy để đánh giá và trả về phản hồi. Proxy có nhiều lợi ích, chẳng hạn như chúng ẩn địa chỉ IP thực của bạn, bỏ qua bộ lọc, kiểm duyệt, v.v.
Đôi khi rất khó để thực hiện quét web nâng cao vì phải gửi nhiều yêu cầu từ cùng một địa chỉ IP. Trình quét web phải đối mặt với vấn đề chung là bị chặn bởi các trang web mà chúng quét. Nhưng chúng có thể sử dụng nhiều kỹ thuật để tránh bị chặn, chẳng hạn như
Một proxy rotator có thể giúp bạn vượt qua hầu hết các biện pháp chống thu thập dữ liệu. Bạn cũng có thể sử dụng nó để tránh bất kỳ giới hạn tỷ lệ nào được triển khai trên trang web mục tiêu và trích xuất dữ liệu thành công. Nhưng proxy rotator là gì? Đó là một proxy chỉ định một địa chỉ IP mới cho mọi kết nối từ nhóm proxy. Điều đó có nghĩa là bạn có thể gửi 1000 yêu cầu đến bất kỳ số lượng trang web nào bằng cách khởi chạy một tập lệnh và nhận 1000 địa chỉ IP khác nhau.
Bài viết này giúp bạn hiểu cách sử dụng proxy để xoay vòng địa chỉ IP trong python.
Bạn có thể thu thập danh sách các proxy miễn phí và lưu chúng vào tệp văn bản có tên list_proxy.txt. Sau đó, bạn có thể làm theo các bước dưới đây để xoay vòng địa chỉ IP trong Python.
Bạn phải nhập mô-đun yêu cầu của Python bằng lệnh bên dưới.
yêu cầu nhập khẩu
Nếu mô-đun chưa được cài đặt trong môi trường của bạn, bạn có thể cài đặt nó bằng lệnh bên dưới.
!pip yêu cầu cài đặt
Bạn phải tạo một hàm send_request sẽ lấy hai tham số, tức là phiên và proxy. Tốt hơn là sử dụng proxy HTTP vì hầu hết các proxy miễn phí không sử dụng giao thức HTTPS. Chúng tôi sẽ sử dụng các khối try-except vì hầu hết các proxy miễn phí không hoạt động vì chúng đã bị chặn.
def send_request(session, proxy):
try:
response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
print(response.json())
except:
pass
Đây là phần chính của mã. Bạn phải đọc tệp list_proxy.txt của mình và lưu nó vào biến có tên là proxies như hiển thị bên dưới.
nếu __name__ == "__main__" : với open ( 'list_proxy.txt' , 'r' ) là tệp : proxy = tệp .readlines()
Bạn phải sử dụng mô-đun requests để tạo phiên trong Python. Chúng tôi đã sử dụng vòng lặp for để lặp qua proxy trong mã bên dưới. Sau đó, chúng tôi chuyển phiên và proxy đến hàm send_request.
với requests.Session() như phiên: cho proxy trong proxy: send_request(session, proxy)
Bạn có thể chạy tập lệnh và xem kết quả như hiển thị bên dưới. Bạn sẽ nhận được danh sách dài các proxy nhưng hãy nhớ rằng chúng sẽ không hoạt động.
python rotateproxy.py
Toàn bộ mã của bạn sẽ như sau:
import requests
def send_request(session, proxy):
try:
response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
print(response.json())
except:
pass
if __name__ == "__main__":
with open('list_proxy.txt', 'r') as file:
proxies = file.readlines()
with requests.Session() as session:
for proxy in proxies:
send_request(session, proxy)
Dưới đây là một số mẹo để xoay vòng proxy trong Python khi sử dụng proxy xoay vòng.
Hầu hết các dịch vụ proxy miễn phí hiện có đều bị tắc nghẽn, dẫn đến sự cố bất ngờ và sự chậm trễ gây khó chịu. Do đó, khi bạn có kế hoạch sử dụng proxy miễn phí, bạn phải kiểm tra xem chúng có phù hợp với nhu cầu thu thập dữ liệu của bạn mà không gây ra bất kỳ sự suy giảm đáng kể nào không.
Hầu hết các proxy miễn phí đều có hiệu lực trong thời gian giới hạn, vì vậy bạn có thể xây dựng logic của riêng mình bằng Python để có thể xoay vòng danh sách proxy miễn phí với các địa chỉ IP đang hoạt động. Theo cách này, bạn sẽ không gặp bất kỳ sự gián đoạn nào trong quá trình thu thập dữ liệu web.
Bạn phải tránh sử dụng các địa chỉ IP theo một trình tự cụ thể hoặc một định dạng có thể dự đoán được như thuộc về cùng một nhóm. Bởi vì hầu hết các công cụ chống sao chép có thể dễ dàng phát hiện các yêu cầu được gửi từ các địa chỉ IP như vậy. Ví dụ, bạn nên tránh sử dụng trình tự xoay vòng các địa chỉ IP sau đây vì nó sẽ nhanh chóng gây ra cờ đỏ.
103.243.132.11
103.243.132.12
103.243.132.13
103.243.132.14
Các trình quay vòng IP proxy miễn phí không an toàn và chậm. Vì vậy, sử dụng chúng sẽ không phù hợp nếu bạn thực hiện các dự án trích xuất web nâng cao và quy mô lớn. Sử dụng các proxy cao cấp tốt, bạn có thể nhận được dịch vụ chất lượng cao và trích xuất hàng nghìn trang web mà không gặp phải tình trạng chặn hoặc gián đoạn.
Để sử dụng dịch vụ proxy cao cấp, bạn sẽ phải trả một vài đô la và tìm được nhà cung cấp đáp ứng được nhu cầu trích xuất dữ liệu của bạn và đảm bảo quyền riêng tư của bạn.
Dưới đây là ba loại proxy chính trên Internet.
Proxy ưu tú là lựa chọn tốt nhất để cân nhắc trong số các proxy này vì chúng có thể ngăn chặn phát hiện và bỏ qua các hạn chế. Bạn chỉ có thể gửi tiêu đề REMOTE_ADDR bằng proxy ưu tú trong khi giữ các tiêu đề khác trống. Theo cách này, bạn có thể đạt được quyền riêng tư tối ưu với các proxy này.
Mặt khác, một proxy trong suốt sẽ tiết lộ chi tiết địa chỉ IP của bạn và gửi IP thực của bạn qua tiêu đề HTTP_VIA và tiêu đề HTTP_X_FORWARDED_FOR. Proxy ẩn danh không tiết lộ địa chỉ IP thực của bạn. Nó sẽ phân phối IP của proxy hoặc để trống.
Bạn có thể sử dụng xoay vòng IP để xoay vòng nhiều địa chỉ IP và tránh bị phát hiện. Tuy nhiên, một số biện pháp chống thu thập dữ liệu có thể xác định các hoạt động như vậy và ngăn bạn thu thập dữ liệu. Do đó, bạn cũng cần xoay vòng các tác nhân người dùng ngoài việc xoay vòng địa chỉ IP để tăng cơ hội thành công.
Thật đơn giản để tạo một proxy rotator trong Python. Bạn có thể tạo proxy ngẫu nhiên và sau đó xây dựng logic để thu thập dữ liệu từ các trang web. Ngoài proxy trung tâm dữ liệu và proxy dân dụng , các danh mục khác là proxy elite, proxy ẩn danh và proxy minh bạch. Proxy elite là lựa chọn tốt nhất vì chúng khó bị trang web mục tiêu phát hiện. Bạn có thể sử dụng proxy ẩn danh nếu bạn chỉ muốn giữ quyền riêng tư của mình trên Internet. Cuối cùng, bạn có thể sử dụng proxy minh bạch, nhưng chúng có cơ hội thành công thấp nhất. Bài viết này hy vọng sẽ cung cấp thông tin chuyên sâu và đưa ra các ví dụ về cách sử dụng proxy để xoay vòng địa chỉ IP trong python với các bước mã hóa đơn giản