Cách sử dụng proxy trong Python

Cách thực hiện , Proxy , Python ,15-11-20225 phút đọc

Chúng ta thường bắt gặp thuật ngữ 'proxy' khi làm việc trong lĩnh vực khoa học máy tính. Khi được kết nối với Internet, mỗi máy tính sẽ có một địa chỉ Giao thức Internet (IP) duy nhất để xác định máy tính và vị trí địa lý của máy tính đó. Máy tính của bạn sẽ gửi yêu cầu bất cứ khi nào cần bất kỳ thông tin nào từ Internet. Yêu cầu là

Mục lục

Chúng ta thường bắt gặp thuật ngữ ' proxy ' khi làm việc trong lĩnh vực khoa học máy tính. Khi kết nối với Internet, mỗi máy tính đều có một địa chỉ Giao thức Internet (IP) duy nhất để xác định máy tính và vị trí địa lý của máy đó. Máy tính của bạn sẽ gửi yêu cầu bất cứ khi nào cần bất kỳ thông tin nào từ Internet. Yêu cầu được gửi đến máy tính mục tiêu để kiểm tra loại thông tin được yêu cầu. Máy tính mục tiêu sẽ gửi lại thông tin nếu được phép cung cấp thông tin đó cho địa chỉ IP của chúng ta. Đôi khi, máy tính muốn lấy thông tin từ Internet mà không bị nhận dạng. Thông tin đó thường bị chặn, nhưng chúng ta có thể lấy thông tin bằng cách sử dụng proxy đóng vai trò trung gian giữa máy khách và máy chủ.

Khách hàng thường sử dụng máy chủ proxy để duyệt các trang web và yêu cầu tài nguyên ẩn danh vì nó hoạt động như một trường nhận dạng giữa máy tính khách hàng và Internet. 

Máy chủ proxy đã trở nên khá phổ biến với mối quan tâm ngày càng tăng về bảo mật trực tuyến và trộm cắp dữ liệu. Ở đây, câu hỏi đặt ra là máy chủ proxy được kết nối với bảo mật của hệ thống của chúng ta như thế nào? Chúng ta có thể nói rằng máy chủ proxy bổ sung thêm một cấp độ bảo mật giữa máy chủ của chúng ta và thế giới bên ngoài. Bảo mật bổ sung này giúp bảo vệ hệ thống của chúng ta khỏi bị vi phạm. 

Làm thế nào để sử dụng Proxy trong Python?

Để sử dụng proxy với các yêu cầu Python, bạn cần làm theo các bước dưới đây.

Yêu cầu nhập khẩu

Nhập gói yêu cầu là một thư viện HTTP đơn giản. Bạn có thể dễ dàng gửi yêu cầu thông qua gói này mà không cần thêm chuỗi truy vấn thủ công vào URL của mình. Bạn có thể nhập yêu cầu bằng lệnh bên dưới.

yêu cầu nhập khẩu

Tạo một từ điển

Bạn cần tạo một từ điển proxy xác định kết nối HTTP và HTTPS. Bạn có thể đặt bất kỳ tên nào cho biến từ điển như "proxies" để ánh xạ giao thức tới URL proxy. Ngoài ra, bạn phải đặt biến URL thành trang web mà bạn phải thu thập dữ liệu.

proxies = {
  "http":'http://203.190.46.62:8080',
  "https":'https://111.68.26.237:8080'
}
url = 'https://httpbin.org/ip'

Ở đây từ điển định nghĩa URL của proxy cho hai giao thức riêng biệt là HTTP và HTTPS.

Tạo một biến phản hồi

Bạn phải tạo một biến phản hồi sử dụng bất kỳ phương thức yêu cầu nào. Phương thức này có hai đối số:

  • URL mà bạn đã tạo
  • Từ điển bạn đã định nghĩa
phản hồi = yêu cầu. lấy (url,proxies = proxy) in (response.json())

Kết quả đầu ra như sau:

Yêu cầu Phương pháp

Có một số phương thức yêu cầu như sau:

  • GET – Truy xuất thông tin từ một máy chủ nhất định bằng cách sử dụng một URL nhất định. 
  • POST – Phương pháp này yêu cầu máy chủ web chấp nhận dữ liệu được đính kèm trong nội dung của tin nhắn yêu cầu để lưu trữ dữ liệu đó.
  • PUT – Yêu cầu dữ liệu kèm theo được lưu trữ theo URL đã cho.
  • DELETE – Phương pháp này gửi yêu cầu DELETE đến URL đã cho.
  • PATCH – Phương pháp yêu cầu này được giao thức HTTP hỗ trợ và thực hiện những thay đổi một phần đối với tài nguyên hiện có. 
  • HEAD – Gửi yêu cầu HEAD đến URL đã cho khi bạn không cần nội dung tệp và chỉ muốn tiêu đề HTTP hoặc status_code.

Bạn có thể sử dụng cú pháp bên dưới của các phương thức yêu cầu khi URL được chỉ định. Ở đây, URL của chúng tôi giống như chúng tôi đã sử dụng trong mã trên, tức là https://httpbin.org/ip .

response = requests.get(url)
response = requests.post(url, data={"a": 1, "b": 2})
response = requests.put(url)
response = requests.delete(url)
response = requests.patch(url)
response = requests.head(url)
response = requests.options(url)

Phiên Proxy

Nếu bạn muốn thu thập dữ liệu từ các trang web sử dụng phiên, bạn có thể làm theo các bước dưới đây.

Bước #01

Nhập thư viện yêu cầu.

yêu cầu nhập khẩu

Bước #02

Tạo một đối tượng phiên bằng cách tạo một biến phiên và thiết lập nó thành phương thức Session() của yêu cầu. 

session = requests.Session()

session.proxies = {
   'http': 'http://10.10.10.10:8000',
   'https': 'http://10.10.10.10:8000',
}

url = 'http://mywebsite.com/example'

Bước #03

Gửi proxy phiên thông qua phương thức yêu cầu và truyền URL làm đối số.

phản hồi = session.get(url)

Các loại Proxy chính

Chúng ta hãy thảo luận về hai loại proxy thiết yếu, đó là;

Proxy tĩnhProxy xoay

Proxy tĩnh

Chúng ta có thể định nghĩa proxy tĩnh là Giao thức Internet của trung tâm dữ liệu được chỉ định thông qua hợp đồng Nhà cung cấp dịch vụ Internet (ISP). Chúng được thiết kế để duy trì kết nối với một máy chủ proxy trong một khoảng thời gian nhất định. Tên "tĩnh" ngụ ý rằng nó cho phép chúng ta hoạt động như một người dùng dân dụng với cùng một IP trong thời gian cần thiết. 

Tóm lại, với việc sử dụng proxy tĩnh, chúng ta có được tốc độ của proxy trung tâm dữ liệu và tính ẩn danh cao của proxy dân dụng . Hơn nữa, proxy tĩnh cho phép chúng ta tránh luân chuyển địa chỉ IP, giúp việc sử dụng nó đơn giản hơn đáng kể.

Các dịch vụ IP tĩnh không được tạo ra bằng cách sử dụng máy ảo, không giống như các proxy trung tâm dữ liệu thông thường. Các proxy này, còn được gọi là địa chỉ IP cố định, trông giống như người tiêu dùng thực sự đối với hầu hết các trang web. 

Proxy luân phiên

Chúng ta có thể định nghĩa luân phiên proxy là tính năng thay đổi địa chỉ IP với mỗi yêu cầu mới mà chúng ta gửi đi.

Khi chúng ta truy cập một trang web, chúng ta gửi một yêu cầu cho máy chủ đích xem rất nhiều dữ liệu, bao gồm cả địa chỉ IP của chúng ta. Ví dụ, khi chúng ta thu thập dữ liệu bằng trình thu thập dữ liệu (để tạo khách hàng tiềm năng), chúng ta gửi nhiều yêu cầu như vậy. Vì vậy, máy chủ đích sẽ nghi ngờ và cấm khi hầu hết các yêu cầu đến từ cùng một IP. 

Do đó, phải có giải pháp để thay đổi địa chỉ IP của chúng ta với mỗi yêu cầu chúng ta gửi đi. Giải pháp đó là một proxy luân phiên. Vì vậy, để tránh những rắc rối không cần thiết khi phải sử dụng một trình thu thập dữ liệu để luân phiên IP trong quá trình thu thập dữ liệu web, chúng ta có thể sử dụng proxy luân phiên và để nhà cung cấp của chúng ta xử lý việc luân phiên.

Tại sao bạn cần sử dụng Proxy?

Sau đây là những lý do để sử dụng nhiều loại proxy khác nhau.

  • Người quản lý phương tiện truyền thông xã hội đánh giá cao proxy vì cho phép họ gắn bó với một máy chủ duy nhất. Nếu người dùng liên tục đăng nhập vào tài khoản của họ bằng cách thay đổi địa chỉ IP, nền tảng phương tiện truyền thông xã hội sẽ nghi ngờ và chặn hồ sơ của họ.
  • Các trang web thương mại điện tử có thể hiển thị dữ liệu khác nhau cho người dùng từ các địa điểm khác nhau và khách truy cập quay lại. Ngoài ra, máy chủ sẽ cảnh báo nếu người mua đăng nhập tài khoản của mình nhiều lần từ nhiều địa chỉ IP khác nhau. Vì vậy, chúng ta phải sử dụng proxy để mua sắm trực tuyến.
  • Chúng ta cần các proxy cho nghiên cứu tiếp thị thủ công khi một chuyên gia muốn kiểm tra dữ liệu cần thiết thông qua góc nhìn của người dùng từ một vị trí. 
  • Xác minh quảng cáo cho phép các nhà quảng cáo kiểm tra xem quảng cáo của họ có được hiển thị trên đúng trang web và được đúng đối tượng xem hay không. Việc thay đổi liên tục các địa chỉ IP sẽ truy cập vào nhiều trang web khác nhau và do đó xác minh quảng cáo mà không bị chặn IP.
  • Khi truy cập từ các vị trí cụ thể, cùng một nội dung có thể trông khác nhau hoặc có thể không khả dụng. Việc sử dụng proxy cho phép chúng tôi truy cập dữ liệu cần thiết bất kể vị trí địa lý của dữ liệu. 
  • Chúng ta có thể sử dụng proxy để truy cập dữ liệu, tăng tốc độ duyệt web vì chúng có hệ thống bộ nhớ đệm tốt.

Phần kết luận

Cho đến nay, chúng ta đã thảo luận rằng proxy hoạt động như một rơle giữa máy khách và máy chủ. Bất cứ khi nào bạn yêu cầu thông tin, máy tính của bạn sẽ gửi yêu cầu này đến proxy, sau đó proxy sẽ gửi thông tin đến máy tính mục tiêu bằng một địa chỉ IP khác. Do đó, địa chỉ IP của bạn vẫn được bảo mật. Hơn nữa, bạn có thể sử dụng proxy với mô-đun yêu cầu trong Python và thực hiện nhiều hành động khác nhau tùy theo nhu cầu của bạn. Nếu bạn cần một IP tĩnh với tốc độ của proxy trung tâm dữ liệu và tính ẩn danh cao của proxy dân dụng , thì proxy tĩnh là giải pháp phù hợp vì địa chỉ IP không thay đổi với mỗi yêu cầu mới. Ngược lại, proxy xoay vòng mang lại lợi ích trong việc thử nghiệm và thu thập dữ liệu.