Cách sử dụng proxy trong Python

Làm thế nào để, Proxies, Python, Nov-15-20225 phút đọc

Chúng ta thường bắt gặp thuật ngữ 'proxy' khi chúng ta 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ẽ nhận đượ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 nó. Máy tính của bạn sẽ gửi yêu cầu bất cứ khi nào nó 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 chúng ta 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ẽ nhận đượ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 nó. Máy tính của bạn sẽ gửi yêu cầu bất cứ khi nào nó cần bất kỳ thông tin nào từ Internet. Yêu cầu được gửi đến một 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 cho địa chỉ IP của chúng tôi. Đô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 nó bằng cách sử dụng proxy hoạt động như một trung gian giữa máy khách và máy chủ.

Các máy khách 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 khách 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à đánh cắp dữ liệu. Ở đây câu hỏi đặt ra làm thế nào máy chủ proxy được kết nối với bảo mật của hệ thống của chúng tôi? Chúng tôi có thể nói rằng một máy chủ proxy bổ sung thêm một mức độ bảo mật bổ sung giữa máy chủ của chúng tôi và thế giới bên ngoài. Bảo mật bổ sung này giúp cứu hệ thống của chúng tôi khỏi 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 vào URL của mình theo cách thủ công. 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 từ điển

Bạn cần tạo một từ điển proxy xác định các kết nối HTTP và HTTPS. Bạn có thể đặt cho biến từ điển bất kỳ tên nào như "proxy" ánh xạ giao thức tới URL proxy. Hơn nữa, bạn phải đặt biến URL cho trang web mà bạn phải cạo.

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

Ở đây từ điển xác định URL của proxy cho hai giao thức riêng biệt: i-e, 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 pháp này có hai đối số:

  • URL bạn đã tạo
  • Từ điển bạn đã định nghĩa
response = yêu cầu. get(url,proxy = proxy)
in(response.json())

Đầu ra là:

Phương thức yêu cầu

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

  • GET - Nó lấy 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 thức này yêu cầu máy chủ web nhất định chấp nhận dữ liệu kèm theo trong nội dung của thông báo yêu cầu để lưu trữ nó.
  • PUT - Nó yêu cầu dữ liệu kèm theo được lưu trữ dưới URL nhất định.
  • DELETE - Phương thức này gửi yêu cầu DELETE đến URL đã cho.
  • PATCH – Phương thức yêu cầu này được hỗ trợ bởi giao thức HTTP và thực hiện các thay đổi một phần đối với tài nguyên hiện có. 
  • HEAD - Nó 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 các tiêu đề HTTP hoặc status_code.

Bạn có thể sử dụng cú pháp dưới đây của các phương thức yêu cầu khi URL được chỉ định. Ở đây, URL của chúng ta giống như chúng ta đã sử dụng trong đoạn code 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 session bằng cách tạo một biến session và thiết lập nó thành phương thức requests Session(). 

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à chuyển URL làm đối số.

response = session.get(url)

Các loại proxy chính

Hãy thảo luận về hai loại proxy thiết yếu, i-e;

Proxy tĩnhProxy xoay

Proxy tĩnh

Chúng ta có thể định nghĩa proxy tĩnh là Giao thức Internet trung tâm dữ liệu được gán 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. Cái tên "tĩnh" ngụ ý rằng nó cho phép chúng tôi hoạt động như một người dùng dân cư có cùng IP miễn là được yêu cầu. 

Nói tóm lại, với việc sử dụng proxy tĩnh, chúng tôi 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 tôi tránh xoay vòng đị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 bằng cách sử dụng máy ảo, không giống như 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 dính, trông giống như người tiêu dùng chính hãng cho hầu hết các trang web. 

Proxy xoay vòng

Chúng tôi có thể định nghĩa xoay vòng proxy là một tính năng thay đổi địa chỉ IP của chúng tôi với mọi yêu cầu mới mà chúng tôi gửi.

Khi chúng tôi truy cập một trang web, chúng tôi gửi một yêu cầu hiển thị cho máy chủ đích rất nhiều dữ liệu, bao gồm cả địa chỉ IP của chúng tôi. Ví dụ: khi chúng tôi thu thập dữ liệu bằng cách sử dụng scraper (để tạo khách hàng tiềm năng), chúng tôi gửi nhiều yêu cầu như vậy. Vì vậy, máy chủ đích bị nghi ngờ và cấm nó 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 tôi với mỗi yêu cầu chúng tôi gử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 có được một trình cạp để xoay IP trong việc quét web, chúng tôi có thể nhận proxy xoay và để nhà cung cấp của chúng tôi lo việc xoay vòng.

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

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

  • Các nhà 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 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 vị trí khác và khách truy cập quay lại. Ngoài ra, máy chủ sẽ trở nên 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ừ các đị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 tôi cần 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 mắt người dùng từ một vị trí. 
  • Xác minh quảng cáo cho phép 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 nhìn thấy hay không. Sự thay đổi liên tục của địa chỉ IP truy cập nhiều trang web khác nhau và do đó xác minh quảng cáo mà không có khối IP.
  • Khi được truy cập từ các vị trí cụ thể, cùng một nội dung có thể trông khác hoặc có thể không có sẵn. 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 nó. 
  • Chúng tôi 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ớ cache tốt.

Kết thúc

Cho đến nay, chúng tôi đã thảo luận rằng một proxy hoạt động như một chuyển tiếp 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 đó gửi thông tin đến máy tính đích bằng đị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 bằng Python và thực hiện các hành động khác nhau tùy thuộc vào 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 cư , thì proxy tĩnh là cách để đi vì địa chỉ IP vẫn không thay đổi với mỗi yêu cầu mới. Ngược lại, các proxy xoay vòng mang lại lợi ích trong việc kiểm tra và cạo.