Ví dụ thư viện cURL Python

Vì tính linh hoạt và tự do của nó, cURL được sử dụng rộng rãi ở mọi nơi. từ ô tô và TV đến bộ định tuyến và máy in

cURL là gì?

CURL là một công cụ được sử dụng để truyền dữ liệu đến và từ một máy chủ web, đồng thời thực hiện nhiều loại yêu cầu dữ liệu khác nhau qua các giao thức dữ liệu khác nhau

  1. HTTP và HTTPS. Được chỉ định để truyền dữ liệu văn bản giữa máy khách và máy chủ. Sự khác biệt chính giữa chúng là HTTPS có mã hóa dữ liệu được truyền
  2. FTP, FTPS và SFTP. Được chỉ định để truyền tệp qua mạng. FTPS là một giao thức truyền tệp an toàn sử dụng công nghệ SSL/TLS để mã hóa các kênh liên lạc của nó. SFTP là giao thức truyền tệp bằng công nghệ SSH
  3. IMAP và IMAPS (IMAP qua SSL) - giao thức lớp ứng dụng để truy cập email
  4. POP3 và POP3S (POP3 qua SSL) - giao thức nhận email
  5. SMB - giao thức mạng lớp ứng dụng để truy cập từ xa vào tệp, máy in và các tài nguyên mạng khác
  6. SCP - giao thức sao chép tệp giữa các máy tính sử dụng SSH được mã hóa làm phương tiện vận chuyển
  7. TELNET - giao thức mạng để truy cập từ xa vào máy tính bằng trình thông dịch lệnh
  8. GOPHER - Giao thức mạng để tìm kiếm và truyền tài liệu phân tán
  9. Các giao thức LDAP và LDAPS (LDAP qua SSL) được sử dụng để xác thực các dịch vụ thư mục
  10. SMTP và SMTPS (SMTP over SSL) - giao thức mạng để chuyển email

Ngoài ra, cURL hỗ trợ xác thực HTTPS, bài đăng HTTP, tải lên FTP, proxy, cookie và tên người dùng + mật khẩu

CURL là một tiện ích dòng lệnh đa nền tảng. Để kiểm tra xem cURL đã được cài đặt chưa, hãy vào cmd (dòng lệnh) và gõ curl -V

_______________

Ví dụ: để lấy mã HTML, người ta có thể viết bằng công cụ dòng lệnh

_______________

Kết quả

_______________

Để viết một trình quét trang web trên cURL, người ta có thể sử dụng API của chúng tôi để giúp quét các trang. Chỉ cần điền vào các trường bắt buộc, sau đó sử dụng khi cần. hoặc chạy từ trang web hoặc dán mã vào chương trình

Ví dụ thư viện cURL Python
Trình tạo yêu cầu

Tuy nhiên, theo quy định, không có các công cụ như vậy, cURL là không đủ vì nó cần thiết như một phần của chương trình Python. Do đó, một API cho chức năng cURL, thư viện libCURL, đã được tạo. Đối với Python, có một trình bao bọc cho libCURL được gọi là pyCURL. Vì vậy, pyCURL là một bước ngoặt đối với Python

Cách sử dụng cURL trong Python

Để bắt đầu, điều đáng nói là có nhiều dịch vụ có thể dịch các lệnh cURL thành mã. Tùy chọn này phù hợp với những người đã có kinh nghiệm viết lệnh, nhưng những người cần mã chương trình

Tuy nhiên, điều đáng chú ý là các dịch vụ như vậy thường sử dụng thư viện chuẩn cho các yêu cầu trên Python - Thư viện yêu cầu. Và, mặc dù cách tiếp cận này có phần hạn chế, nhưng nó có thể phù hợp với một số

Một cách khác là sử dụng PycURL và tự viết mã chương trình

Thư viện PycURL

Như đã đề cập, PycURL là một trình bao bọc mỏng phía trên libcURL kế thừa tất cả các tính năng của libcURL. Ví dụ: PycURL cực kỳ nhanh (nhanh hơn nhiều so với Yêu cầu, là thư viện Python cho các yêu cầu HTTP), có hỗ trợ đa giao thức và cũng chứa các ổ cắm để hỗ trợ hoạt động mạng. Hơn nữa, PycURl hỗ trợ các giao thức dữ liệu giống như một cURL

Để cài đặt PycURL, hãy truy cập cmd và gõ lệnh tiếp theo

_______________

Nếu bạn gặp sự cố khi cài đặt bằng lệnh pip install, bạn có thể truy cập trang web chính thức của PycURL, nơi chứa phiên bản mới nhất của các tệp cài đặt

NHẬN yêu cầu

Mẫu mã đơn giản nhất để sử dụng PycURL là lấy dữ liệu bằng yêu cầu GET. Để thực hiện việc này, cần kết nối thêm một mô-đun - BytesIO (luồng sử dụng bộ đệm byte trong bộ nhớ)

_______________

Sau đó, người ta cần khai báo các đối tượng được sử dụng

_______________

Và đặt URL

_______________

Sau đó mở chuyển, nhận dữ liệu và hiển thị nó

_______________

Hãy nhớ rằng, dữ liệu JSON đó sẽ được hiển thị. Nếu trong quá trình upload có sai sót gì sẽ được trả về code phản hồi. Ví dụ: mã trạng thái 404 có nghĩa là không tìm thấy trang

ĐĂNG yêu cầu

POST Request cho phép gửi dữ liệu lên server. Nó giống như GET là một yêu cầu HTTP. Có hai cách khác nhau để gửi dữ liệu bằng phương thức POST. gửi dữ liệu văn bản và gửi một tập tin

Đầu tiên, nhập Pycurl và urllib để mã hóa và khai báo các đối tượng được sử dụng

_______________

Sau đó, đặt phương thức yêu cầu HTTP thành POST và dữ liệu để gửi trong phần thân yêu cầu

_______________

Và bước cuối cùng - thực hiện POST

_______________0

Gửi dữ liệu từ file vật lý cũng tương tự

_______________1

Nếu dữ liệu tệp nằm trong bộ nhớ, người ta có thể sử dụng BUFFER/BUFFERPTR trong mã của mình

_______________2

Một mã khác sẽ giống nhau

yêu cầu PUT

Yêu cầu PUT giống như yêu cầu POST. Điểm khác biệt của chúng là PUT có thể được sử dụng để tải tệp lên trong phần thân của yêu cầu. Đồng thời, PUT có thể được sử dụng để tạo và ghi đè lên một tệp tại một địa chỉ nhất định. Khi sử dụng PUT với PycURL, điều quan trọng cần nhớ là tệp phải được mở tại thời điểm chuyển

Phần này tương tự như phương thức POST

_______________3

Sau đó, người ta cần mở và đọc tệp

_______________4

Sau đó, việc truyền dữ liệu có thể được bắt đầu

_______________5

Và chỉ khi kết thúc mới có thể đóng tệp

_______________6

Xóa yêu cầu

Và ví dụ cuối cùng là một yêu cầu XÓA HTTP. Nó gửi yêu cầu xóa tài nguyên đích đến máy chủ

_______________7

Tải tập tin

Đôi khi, dữ liệu nhận được cần được ghi vào một tệp. Đối với điều này, người ta có thể sử dụng cùng một mã như để truyền dữ liệu từ một tệp, với một ngoại lệ - chức năng setopt không sử dụng READDATA mà là WRITEDATA

_______________số 8

Sử dụng Proxy trong PycURL

Proxy CURL là một khóa tiện ích cuộn tròn cho phép một người gửi yêu cầu HTTP một cách gián tiếp, thông qua máy chủ proxy. Nói cách khác, đây là một thứ không thể thiếu để quét web

Cài đặt proxy có liên quan để phân tích một lượng lớn dữ liệu. Bằng cách gửi hàng trăm yêu cầu mỗi phút từ một địa chỉ IP, có khả năng bị chặn

Ở cấp độ máy chủ, tính năng bảo vệ được kích hoạt để ngăn chặn các cuộc tấn công DoS. Sử dụng các proxy cURL khác nhau sẽ giải quyết vấn đề này và cho phép bạn cạo dữ liệu mà không có nguy cơ bị chặn

Để sử dụng proxy, người ta cần cài đặt thư viện chứng chỉ

_______________9

Nhưng trong hầu hết các trường hợp, người dùng đã có sẵn vì đây là thư viện tích hợp sẵn

_______________0

Để sử dụng chứng chỉ nhập khẩu trong dự án

C:\Users\Admin>curl example.com
<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

C:\Users\Admin>
1
C:\Users\Admin>curl example.com
<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

C:\Users\Admin>
2

Để sử dụng nó trong chương trình, trước hết hãy nhập tất cả các thư viện

_______________3

Và sau đó đặt proxy

_______________4

Kết luận và rút ra

CURL là một tiện ích truy vấn tiện dụng hỗ trợ hầu hết các giao thức truyền. API LibcURL được tạo để sử dụng trong các chương trình của chính mình. Và để sử dụng trong Python, một trình bao bọc mỏng bên trên libcURL đã được tạo, được gọi là PycURL

Với sự trợ giúp của thư viện này, có thể sử dụng tất cả các yêu cầu và làm việc với tất cả các giao thức được hỗ trợ bởi cURL. Đồng thời, thư viện PycURL nhanh hơn nhiều so với thư viện tương tự Python của nó, thư viện Yêu cầu

Tôi có thể sử dụng curl trong Python không?

Trong Python, cURL chuyển yêu cầu và dữ liệu đến và từ máy chủ bằng PycURL . PycURL hoạt động như một giao diện cho thư viện libcURL trong Python. Hầu hết mọi ngôn ngữ lập trình đều có thể sử dụng API REST để truy cập điểm cuối được lưu trữ trên máy chủ web.

Làm cách nào để cài đặt curl bằng Python?

Xây dựng và cài đặt pycurl bằng các lệnh sau. .
(nếu cần, trở thành root) tar -zxvf pycurl-$VER. hắc ín. gz cd pycurl-$VER thiết lập python. cài đặt chân. .
thiết lập trăn. cài đặt py -- curl - config = / usr / local / bin / curl - config

ví dụ về curl là gì?

Các ví dụ về Curl bao gồm gửi tệp JSON tới máy chủ, gửi biểu mẫu web, xác thực người dùng, hỗ trợ proxy, lưu phản hồi của máy chủ vào đĩa , và hơn thế nữa. Hầu hết các ví dụ được đưa ra có thể được thực hiện ngay trong trình duyệt bằng cách sử dụng ReqBin Online Curl Client.

PycURL được sử dụng để làm gì?

PycURL có thể được sử dụng để tìm nạp các đối tượng được xác định bởi một URL từ chương trình Python to fetch objects identified by a URL from a Python program , tương tự như mô-đun Python urllib. PycURL đã trưởng thành, rất nhanh và hỗ trợ rất nhiều tính năng.