Nếu bạn đang tìm kiếm một công cụ cho phép bạn kiểm tra proxy và thu thập dữ liệu trang web cùng lúc thì bạn đã đến đúng nơi. cURL là một công cụ dòng lệnh cho phép bạn kiểm tra proxy và tiến hành một số thao tác quét web cơ bản. Trực quan và dễ học, cURL cũng có thể gửi yêu cầu, thêm cookie, gỡ lỗi và kết nối với proxy, cùng nhiều tính năng khác.
Hướng dẫn từng bước này sẽ hướng dẫn bạn cURL là gì, cách sử dụng các lệnh khác nhau của nó, cách sử dụng nó để quét web nhẹ và cách sử dụng cURL với máy chủ proxy. Hướng dẫn này có thể hơi phức tạp, vì vậy hãy đảm bảo rằng bạn có hiểu biết cơ bản về proxy là gì trước khi bắt đầu đọc. Biết một số điều cơ bản về quét web cũng sẽ có ích.
Mục lục
- cURL là gì?
- Cách cài đặt cURL
- Cách sử dụng cURL
- Cách sử dụng cURL với máy chủ proxy
- 7 thủ thuật và mẹo quan trọng
- Curl vs Wget
- Phần kết luận
cURL là gì?
cURL, viết tắt của “URL khách hàng”, là một công cụ dòng lệnh hỗ trợ truyền dữ liệu qua internet. Nó bao gồm dòng lệnh Curl.exe và một thư viện đa nền tảng có tên là libcurl
, cho phép trao đổi dữ liệu giữa các máy chủ.
Tương thích với nhiều hệ điều hành hiện đại khác nhau sử dụng giao thức internet, cURL hoạt động trên các thiết bị từ máy tính xách tay đến ô tô. Nó hỗ trợ nhiều giao thức internet, chẳng hạn như:
- DICT
- TÀI LIỆU
- FTP
- FTPS
- GOPHER
- HTTP
- HTTPS
- IMAP
- HÌNH ẢNH
- LDAP
- LDAPS
- MQTT
- POP3
- POP3S
- RTSP
- SCP
- SFTP
- SMB
- SMB
- SMTP
- SMTPS
- TELNET
- TFTP
Một cộng đồng đáng kể đã phát triển nhiều công cụ khác nhau cho cURL, bao gồm cả trình tải cuộn tròn, một công cụ kiểm tra hiệu suất phần mềm Linux nguồn mở. Curl-loader có thể mô phỏng hành vi ứng dụng của nhiều máy khách FTP/FTPS và HTTP/HTTPS. Một quy trình tải cuộn đơn có thể hỗ trợ 2.500 đến 100.000 máy khách ảo, với mỗi máy khách có một địa chỉ IP nguồn duy nhất.
Nguồn gốc của cURL
Lịch sử của cURL bắt đầu từ những năm 1990, khi các công cụ dòng lệnh còn phổ biến. Năm 1996, nhà phát triển Thụy Điển Daniel Stenberg đã bắt đầu làm việc trên tập lệnh phòng trò chuyện chuyển tiếp qua internet (IRC) để chuyển đổi tiền tệ cho những người tham gia trò chuyện. Điều này khiến anh ấy đóng góp vào một công cụ có tên httpget, một phương thức HTTP phổ biến để truyền dữ liệu qua máy chủ. Thử nghiệm của Stenberg đã tạo ra httpget 0.1, bao gồm “ít hơn 300 dòng của một tệp C”.
Nhiều tháng sau, các giao thức truyền tệp (FTP) xuất hiện, khiến Stenberg phải kết hợp hỗ trợ FTP vào công cụ của mình và đổi tên thành urlget 2.0. Vào ngày 30 tháng 3 năm 1998, ông đã thêm hỗ trợ tải lên FTP và đổi tên công cụ này một lần nữa thành cURL 3.0.
Mặc dù cURL có tiềm năng rất lớn nhưng ban đầu nó lại ít được chú ý. Năm 1998, sau 15 lần cập nhật và phát hành lại, cURL đã có hơn 300 lượt tải xuống từ trang của Stenberg. Cuối năm đó, Red Hat Linux áp dụng cURL, tiếp theo là Debian vào năm 1999 và Mac OS X 10.1 vào tháng 8 năm 2001. Kể từ năm 2001, cURL đã trở thành tính năng mặc định trên hầu hết mọi phần mềm có thể kết nối internet, bao gồm các thiết bị Windows 10, iOS và Android, Sony PS5, Nintendo Switch, Xbox và thậm chí cả ô tô.
Tại sao nên sử dụng cURL?
cURL là lựa chọn phổ biến của các nhà phát triển nhờ khả năng xử lý các hoạt động phức tạp một cách hiệu quả. Tính linh hoạt, khả năng tạo tập lệnh và thư viện đi kèm của nó cho phép tích hợp liền mạch với các chương trình khác mà không cần phải viết mã mạng và phân tích cú pháp HTTP tùy chỉnh.
cURL cung cấp rất nhiều những lợi ích, chẳng hạn như:
- Khả năng kiểm tra và gỡ lỗi điểm cuối
- Thông tin chi tiết về dữ liệu đã gửi và nhận
- Ghi nhật ký lỗi toàn diện
- Hỗ trợ cho một loạt các giao thức
- Khả năng tương thích với http2, Metalink, gzip, giải nén tự động và Mã hóa nội dung
- Các tính năng nâng cao như tải lên FTP, cookie, xác thực người dùng, hỗ trợ proxy, kết nối SSL, v.v.
- Tự động chuyển đổi giao thức nếu giao thức mặc định không thành công
- Cú pháp URL phụ thuộc vào giao thức
- Chức năng giới hạn tỷ lệ
- Khả năng chỉ định các phần URL hoặc nhiều URL bằng cách sử dụng dấu ngoặc đơn (ví dụ: https://google.{one, two, three}.com)
- Tùy chọn chỉ định số lượng URL bất kỳ thông qua dòng lệnh
Hơn nữa, các nhà phát triển đánh giá cao tính năng xác minh chứng chỉ SSL mặc định của cURL và hỗ trợ HTTPS. Khi cURL kết nối với máy chủ qua HTTPS, nó sẽ lấy chứng chỉ của máy chủ và so sánh nó với chứng chỉ CA, đảm bảo tính xác thực của máy chủ từ xa.
Cách cài đặt cURL
Hãy khám phá cách cài đặt cURL trên máy tính của bạn.
hệ điều hành Mac
Không cần cài đặt cURL trên macOS vì nó đã được tích hợp sẵn trong hệ điều hành. Bạn có thể sử dụng nó nguyên bản trong ứng dụng Terminal.
các cửa sổ
Bắt đầu với Windows 10, hệ điều hành bao gồm một bản sao của cURL. Tuy nhiên, lệnh cURL đóng vai trò là bí danh cho Lệnh gọi PowerShell-WebRequest yêu cầu. Do đó, việc thực thi các lệnh cURL trong thiết bị đầu cuối Windows sẽ bắt đầu Yêu cầu gọi ở hậu trường. Để sử dụng cURL thay vào đó, hãy thay thế 'curl' bằng 'curl.exe' và PowerShell sẽ chạy cURL thay vì Invoke-Request.
Ví dụ: để kiểm tra phiên bản hiện tại của cURL được cài đặt trên máy Windows của bạn, hãy nhập lệnh sau vào thiết bị đầu cuối:
curl.exe --version
Đầu ra sẽ giống:
curl 7.83.1 (Windows) libcurl/7.83.1 Schannel
Release-Date: 2022-05-13
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets
Nếu bạn muốn tìm hiểu thêm về cURL và Windows, chúng tôi khuyên bạn nên xem video này. Bạn sẽ được thông báo cURL là gì, cách chạy nó trên windows và cách chạy các yêu cầu API GET, POST, PUT, DELETE bằng cURL.
Linux
Đối với người dùng Linux, quá trình cài đặt cURL sẽ khác nhau tùy thuộc vào bản phân phối cụ thể của bạn. Các bản phân phối phổ biến như Ubuntu và Fedora được cài đặt sẵn cURL, cho phép bạn sử dụng nó trực tiếp trong thiết bị đầu cuối.
Đối với các bản phân phối không bao gồm cURL theo mặc định, bạn có thể cài đặt nó bằng trình quản lý gói của bản phân phối. Ví dụ: trên hệ điều hành dựa trên Debian, hãy sử dụng lệnh sau để cài đặt cURL:
sudo apt-get install curl
Cách sử dụng cURL
Đảm bảo cURL được cài đặt trên thiết bị của bạn. Trước khi sử dụng cURL, hãy đảm bảo rằng nó đã được cài đặt trên hệ thống của bạn. Nếu không, hãy tải xuống từ trang web cURL.
A. Xác minh cài đặt cURL trên thiết bị của bạn
Để kiểm tra xem cURL đã được cài đặt trên hệ thống của bạn hay chưa, hãy làm theo các bước sau:
- Trên PC Windows hoặc MacBook, hãy mở giao diện dòng lệnh hoặc thiết bị đầu cuối PowerShell.
- Kiểu
'curl --version'
- Bấm phím Enter.
Nếu cURL được cài đặt trên thiết bị của bạn, bạn sẽ nhận được thông báo tương tự như sau:
curl --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: 2017-11-14, security patched: 2020-11-05
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
HOẶC
curl --version
curl 7.31.0 (x86_64-apple-darwin12.4.0) libcurl/7.31.0 OpenSSL/0.9.8x zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz
Nếu bạn thấy một thông báo khác, điều đó cho biết rằng cURL chưa được cài đặt trên thiết bị của bạn và bạn cần cài đặt nó.
B. Xác định cú pháp cURL thích hợp để sử dụng
Theo mặc định, cURL sử dụng giao thức HTTP, với cú pháp sau: cURL [options] [URL]
Vì cURL hỗ trợ nhiều giao thức nên cú pháp có thể thay đổi đôi chút đối với mỗi giao thức. Dưới đây là một số ví dụ về lệnh cURL cho các giao thức mạng khác nhau:
- Giao thức truyền tệp (FTP): cURL -T “tệp đã chọn” “ftp://[target-destination]”
- Giao thức truyền thư đơn giản (SMTP): cURL smtp://[smtp-server] –mail-from [người gửi] –mail-rcpt [người nhận] –upload-file [mail-content-file]
- Giao thức Mạng Từ điển [DICT]: cURL “dict://dict.org/d:hi”
Điều cần thiết là phải biết bạn sẽ làm việc với giao thức mạng nào để tối ưu hóa trải nghiệm cURL của mình.
C. Sử dụng cú pháp cURL thích hợp cho mục tiêu của bạn
cURL cho phép bạn thực hiện nhiều tác vụ khác nhau, chẳng hạn như tải xuống và tải lên tệp hoặc xử lý xác thực người dùng. Mỗi tác vụ yêu cầu một cú pháp cURL khác nhau, chủ yếu là do các tham số cụ thể và giao thức mạng liên quan.
Dưới đây là một số tác vụ phổ biến và các lệnh cURL tương ứng của chúng:
- Để tải xuống một tập tin: cuộn tròn -o [tên tệp] [URL]
- Để tải tệp lên bằng giao thức FTP: cuộn tròn -u [Tên người dùng:Mật khẩu] -T [đường dẫn tệp cục bộ] ftp://[URL]
- Để yêu cầu tiêu đề HTTP: cuộn tròn -I [URL]
Cách sử dụng cURL để quét ánh sáng
cURL có thể được sử dụng để quét web nhẹ kết hợp với ngôn ngữ lập trình như PHP.
Trước khi bắt đầu thu thập dữ liệu, hãy đảm bảo bạn xem lại tệp robots.txt của trang web mục tiêu. Tuân thủ các quy tắc, ngay cả khi chúng có vẻ phi logic, vì chủ sở hữu trang web có quyền thiết lập các tham số và hạn chế. Việc tuân thủ tệp robots.txt khi thu thập dữ liệu trên web được coi là thông lệ tiêu chuẩn và việc không tuân thủ có thể dẫn đến những rắc rối về mặt pháp lý.
Với ý nghĩ đó, đây là hướng dẫn về cách sử dụng cURL để quét web nhẹ.
Để bắt đầu cạo, hãy làm theo các bước sau:
- Chọn ngôn ngữ lập trình để thu thập dữ liệu, chẳng hạn như PHP. Hướng dẫn này sẽ sử dụng PHP.
- Tạo một tệp PHP mới.
- Khởi tạo trình xử lý cURL bằng cách sử dụng Curl_init.
$curl = curl_init
- Đặt CURLOPT_RETURNTRANSFER thành TRUE, trả về trang chuyển dưới dạng chuỗi. Lệnh này yêu cầu cURL lưu trữ trang đã được loại bỏ dưới dạng một biến thay vì hiển thị toàn bộ trang theo mặc định: Curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
- Bắt đầu yêu cầu và thực hiện kiểm tra lỗi:
$page = curl_exec($curl)
;if(curl_errno($curl)) // check for execution errors { echo 'Scraper error: ' . curl_error($curl); exit; }
- Đóng kết nối:
curl_close($curl);
Để chỉ trích xuất một phần thông tin cụ thể, bạn cần chỉ ra nội dung bạn muốn trích xuất trong id=”case_textlist”. Theo mặc định, cURL sẽ trích xuất toàn bộ trang:
$regex = '<div id="case_textlist">(.*?)</div>/s';
if (preg_match($regex, $page, $list)) echo $list[0]; else echo "Not found";
Để phân tích trang web bằng máy chủ proxy trong PHP, bạn có thể sử dụng thư viện cURL. Dưới đây là một tập lệnh PHP mẫu tìm nạp trang web bằng máy chủ proxy:
Mã PHP:
<?php
// Set the URL to fetch
$url = "http://www.example.com";
// Set the proxy server and port
$proxy = "proxy.example.com:8080";
// Create a new cURL resource
$ch = curl_init();
// Set the cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Fetch the URL and output the response
$response = curl_exec($ch);
echo $response;
// Close the cURL resource
curl_close($ch);
?>
Trong đoạn script trên, bạn có thể thay đổi biến $url thành URL của trang web bạn muốn phân tích cú pháp và thay đổi biến $proxy thành địa chỉ và cổng của máy chủ proxy mà bạn muốn sử dụng. Hàm Curl_setopt() được sử dụng để đặt các tùy chọn cURL, bao gồm URL, máy chủ proxy và để trả về phản hồi dưới dạng chuỗi thay vì xuất trực tiếp. Cuối cùng, hàmcurl_exec() được sử dụng để tìm nạp URL và phản hồi được xuất ra kèm theo tiếng vang. Hàm Curl_close() được gọi để đóng tài nguyên cURL.
Trong video bên dưới, bạn sẽ tìm hiểu cách tạo trình quét proxy bằng cách tải URL của trang web bằng cURL và khớp chúng với các biểu thức thông thường.
Cách sử dụng cURL để quét nâng cao
Dưới đây là một số cấu hình cUrl được tinh chỉnh có thể giúp tối ưu hóa các phiên quét web của bạn.
Tiêu đề phụ: Kết hợp tác nhân người dùng
Khi sử dụng cURL để tải xuống hoặc thu thập các liên kết, nó sẽ tự nhận dạng trang web là cUrl. Trong một số trường hợp, bạn có thể không muốn điều này vì các trang web cụ thể có thể nhận ra cUrl là bot và chặn nó.
Để tránh điều này, hãy thêm tác nhân người dùng bằng cách sử dụng tùy chọn -A hoặc –user-agent. Trong ví dụ này, chúng tôi đã sử dụng tác nhân người dùng Firefox 65 trên Windows 10:
curl -x https://fineproxy.de/ -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"
Ngoài ra, bạn có thể gửi tác nhân người dùng trong tiêu đề bằng tùy chọn -H:
curl -x https://fineproxy.de/ -v -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"
Tiêu đề phụ: Cấu hình tiêu đề
Khi thu thập dữ liệu một trang web, điều quan trọng là tránh bị coi là bot. Nhiều trang web hiện chặn bot trích xuất dữ liệu của họ vì chúng có thể làm quá tải máy chủ và làm ảnh hưởng đến dịch vụ của người dùng.
Để đạt được điều này, bạn cần gửi tiêu đề thích hợp bằng cURL.
Trước tiên, hãy xác định tiêu đề bạn thường gửi đến trang web mục tiêu bằng cách nhấp chuột phải và chọn “Kiểm tra”. Tiếp theo, điều hướng đến tab “Mạng”. Làm mới trang đích và bạn sẽ thấy các yêu cầu được thực hiện trong quá trình tải trang. Để kiểm tra yêu cầu kỹ hơn, bạn cũng có thể nhấp chuột phải vào yêu cầu đó và sao chép nó dưới dạng dòng lệnh cUrl.
Sau đó, định cấu hình tiêu đề trong cUrl bằng tùy chọn -H hoặc –header. Ví dụ: đây là cách bạn gửi tiêu đề “Chấp nhận” đến trang đích:
curl -x https://fineproxy.de/ -v -H "Accept: text/html"
Cách sử dụng cURL với máy chủ proxy
Việc sử dụng cURL với proxy sẽ cho phép nhiều trường hợp sử dụng khác nhau, chẳng hạn như quét web, trong đó proxy là cần thiết để ngăn chặn các lệnh cấm và chặn trang web. Trong hướng dẫn này, bạn sẽ tìm hiểu cách gửi dữ liệu qua máy chủ proxy bằng cURL.
Hãy làm theo các bước sau để sử dụng cURL với Proxy:
1. Thiết lập máy chủ proxy
Trước tiên, hãy thiết lập proxy của bạn theo hướng dẫn do nhà cung cấp proxy của bạn cung cấp. Để xác minh rằng proxy của bạn đã được thiết lập chính xác, hãy nhập lệnh sau vào thiết bị đầu cuối của bạn:
curl https://httpbin.org/ip
Lệnh này trả về địa chỉ IP của thiết bị của bạn. Nếu các giá trị khớp với địa chỉ IP ban đầu của thiết bị thì máy chủ proxy của bạn không được thiết lập đúng cách. Nếu chúng không khớp thì máy chủ proxy của bạn đã được định cấu hình đúng.
2. Định cấu hình Proxy của bạn để hoạt động với các lệnh cURL
Có ba cách để định cấu hình proxy của bạn để sử dụng với cURL:
A. Sử dụng tệp cấu hình (.curlrc)
Tệp cấu hình là tệp văn bản chứa các cài đặt bạn mong muốn, được lưu ở định dạng tệp .curlrc trong thư mục hệ thống của bạn để dễ dàng truy cập khi chạy lệnh cURL.
Tệp cấu hình proxy chứa dữ liệu ở định dạng sau:
proxy = "[protocol://][host][:port]"
Bạn có thể lưu nhiều cài đặt cấu hình trong tệp và kích hoạt chúng khi cần. Trước khi chạy lệnh cURL, hãy mở tệp và bất kỳ lệnh cURL nào bạn thực thi sẽ sử dụng cài đặt proxy từ tệp cấu hình.
Tạo tệp cấu hình là phương pháp tốt nhất cho những người thường xuyên sử dụng cURL bằng proxy và trích xuất khối lượng lớn dữ liệu. Nó tiết kiệm thời gian bằng cách loại bỏ nhu cầu định cấu hình proxy cho cURL mọi lúc.
B. Sử dụng đối số dòng lệnh
Phương pháp này phù hợp để sử dụng proxy một lần với các lệnh cURL, vì nó chỉ yêu cầu cú pháp proxy cURL trực tiếp. Cú pháp như sau:
curl -x "[protocol://][host][:port]" [URL] [options]
Vì giao thức mặc định của cURL là HTTP nên bạn phải chỉ định chi tiết giao thức và máy chủ proxy, đặc biệt nếu bạn đang sử dụng giao thức mạng khác.
C. Sử dụng biến môi trường
Phương pháp thứ ba liên quan đến việc thiết lập các biến http_proxy và https_proxy, được gọi là biến môi trường, ảnh hưởng đến các tiến trình đang chạy ở cấp hệ thống. Các lệnh này là một phần của hệ điều hành và có thể ghi đè các tham số khác.
Cú pháp cài đặt proxy cURL thông qua các biến môi trường như sau:
export http_proxy="[protocol://][host][:port]"
export https_proxy="[protocol://][host][:port]"
Sau khi chạy các lệnh này, mọi lệnh cURL bạn thực thi sẽ tự động đi qua máy chủ proxy. Bây giờ chúng ta hãy nói thêm một chút về phương pháp này.
Sử dụng cURL với Proxy thông qua Biến môi trường
Biến môi trường giống như một đối tượng lưu trữ một giá trị có thể chỉnh sửa trong bộ nhớ mà một hoặc nhiều chương trình phần mềm có thể sử dụng. Trong trường hợp này, chúng ta có thể chuyển một biến có tên http_proxy hoặc https_proxy tới cURL, biến này chứa thông tin proxy của chúng ta và chúng ta sẽ không cần chỉ định biến đó mỗi khi chạy lệnh. Bạn có thể thực hiện điều này bằng cách chạy lệnh này:
$ export http_proxy="http://fineproxy.proxy_type=datacenter.device=desktop:<YOUR-API-KEY>@proxy.fineproxy.de:80"
Xin lưu ý rằng bạn phải đặt tên biến là http_proxy hoặc https_proxy để cURL hiểu được nó. Đó là nó. Bạn không còn cần phải cung cấp thông tin xác thực mỗi khi chạy lệnh và giờ đây bạn có thể chạy cURL đơn giản như sau:
$ curl http://httpbin.org/get
Điều này sẽ cung cấp cho chúng tôi đầu ra sau:
{ "args": {}, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "httpbin.org", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", "X-Amzn-Trace-Id": "Root=1-633bf912-66ace1104304ddaf5ea8ac65" }, "origin": "132.255.134.104", "url": "http://httpbin.org/get" }
Như bạn có thể thấy, địa chỉ IP là địa chỉ của proxy, xác nhận rằng bạn đã hoàn thành xuất sắc công việc thiết lập proxy của mình. Tại thời điểm này, chúng tôi có thể chạy bất kỳ lệnh cURL nào mà không chỉ định thông tin proxy vì cURL sẽ xử lý nó cho chúng tôi.
7 thủ thuật và mẹo quan trọng
Trong phần này, chúng tôi sẽ trình bày một số thủ thuật hấp dẫn và mẹo vô giá để sử dụng proxy với cUrl, phù hợp với nhu cầu cụ thể của bạn.
Mẹo 1: Đặt proxy dành riêng cho cUrl
Để chỉ định proxy cho các tác vụ dựa trên cUrl, hãy sử dụng chuỗi lệnh sau:
-
cd ~ $ nano .curlrc
- Thêm dòng này vào tập tin:
proxy=http://user:pwd@IP_address_or_FQDN:port
Ví dụ:
proxy=http://testuser:[email protected]:3128
- Chạy cUrl như bình thường:
$ curl "https://www.reddit.com"
Mẹo 2: Kích hoạt và vô hiệu hóa proxy
Tạo bí danh trong tệp .bashrc trong trình chỉnh sửa của bạn để thực hiện việc này:
$ cd ~
alias proxyon="export http_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port';export https_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port'"
alias proxyoff="unset http_proxy;unset https_proxy"
Ví dụ:
alias proxyon="export http_proxy='http://testuser:[email protected]:3128';export https_proxy='http://testuser:[email protected]:3128'"
Kiểm tra nhanh thiết lập bí danh bằng cách chạy lệnh bí danh trong terminal. Lưu .bashrc và cập nhật shell bằng cách sử dụng:
$ ~/.bashrc
Mẹo 3: Bỏ qua lỗi chứng chỉ SSL
Khi cUrl gặp lỗi chứng chỉ SSL, nó sẽ chặn các yêu cầu đó. Để 'bỏ qua' các lỗi chứng chỉ SSL khi gỡ lỗi, đặc biệt trong các tình huống chỉ xảy ra một lần, hãy thêm -k hoặc –insecure vào dòng lệnh cUrl:
curl -x "[protocol://][host][:port]" -k [URL]
Mẹo 4: Thu thập thêm thông tin về yêu cầu
Nếu yêu cầu của bạn không hoạt động như mong đợi, bạn có thể muốn kiểm tra đường dẫn yêu cầu, tiêu đề và các lỗi khác nhau. Để điều tra yêu cầu, hãy thêm -v (–verbose) vào yêu cầu sau cUrl, thao tác này sẽ xuất ra tất cả các tiêu đề yêu cầu và kết nối đã trải qua.
Mẹo 5: Bỏ qua proxy cho một yêu cầu
Để ghi đè proxy cho một yêu cầu cụ thể, hãy sử dụng dòng lệnh sau:
curl --proxy "http://user:pwd@Proxy_FQDN_or_IPAddress" "https://reddit.com"
Hoặc dùng:
$ curl --noproxy "*" https://www.reddit.com
Để bỏ qua proxy hoàn toàn. Với tùy chọn -v, nó hiển thị kết nối trực tiếp tới Reddit mà không cần sử dụng bất kỳ proxy nào.
Mẹo 6: Sử dụng proxy SOCK
Nếu bạn muốn sử dụng bất kỳ loại proxy SOCK nào (4/4a/5/5h), cấu trúc mã vẫn giữ nguyên như trước, ngoại trừ việc bạn thay thế phần có liên quan bằng loại SOCKS thích hợp:
curl -x "socks5://user:pwd@Proxy_IP_or_FQDN:Port" https://www.reddit.com
Ví dụ:
$ curl -x "socks5://testuser:[email protected]:3128" https://www.reddit.com
Mẹo chuyên nghiệp 7: Nếu không có giao thức nào được chỉ định, cURL sẽ mặc định là SOCKS4!
Curl vs Wget
Wget là một công cụ dòng lệnh có nhiều tính năng cho phép truyền tệp bằng các giao thức mạng tiêu chuẩn như HTTP, HTTPS và FTP. Tên của nó là sự kết hợp giữa chữ cái đầu tiên của WWW và 'get', thừa nhận rằng Wget chủ yếu được tạo ra để trao đổi dữ liệu web.
Cú pháp chuẩn cho lệnh Wget là:
Wget [option] [URL]
Các lệnh Wget có thể so sánh với các lệnh cURL và chúng thực hiện các chức năng tương tự nhưng theo những cách khác nhau.
5 điểm tương đồng giữa cURL và Wget
- Cả hai đều là tiện ích dòng lệnh có thể tải xuống tệp từ FTP và HTTP hoặc HTTPS và hỗ trợ các yêu cầu HTTP POST.
- Cả hai đều là phần mềm nguồn mở.
- Cả cURL và Wget đều được giới thiệu vào cùng năm 1996.
- Cả hai đều có giấy phép tương tự, giấy phép GPLv3.
- Cả hai đều là gói phần mềm nhẹ hoạt động trên nhiều hệ điều hành.
10 điểm khác biệt giữa cURL và Wget
Sự khác biệt chính giữa cURL và Wget nằm ở cách các tiện ích này thực hiện các yêu cầu và tài nguyên mà chúng sử dụng để đạt được mục tiêu của mình. Bảng sau đây nêu bật những khác biệt này:
Xoăn | quên | |
---|---|---|
1. Thư viện | Được hỗ trợ bởi thư viện libcURL | Không cần thư viện |
2. Hoạt động | Truyền dữ liệu trong một thao tác duy nhất, không cần tải xuống đệ quy | Hỗ trợ tải xuống đệ quy |
3. Giao thức | Hỗ trợ một loạt các giao thức mạng | Chỉ hỗ trợ HTTP(S) và FTP |
4. Tải xuống | Yêu cầu -o hoặc -O để tải một URL ở xa xuống tệp cục bộ | Không cần -o hoặc -O để tải xuống một URL ở xa |
5. Tải lên | Có thể tải lên và truyền dữ liệu theo cả hai hướng | Chỉ hỗ trợ các yêu cầu HTTP POST đơn giản |
6. Ủy nhiệm | Hỗ trợ các loại proxy HTTPS, SOCKS 4 và SOCKS 5 | Hỗ trợ proxy HTTP nhưng không hỗ trợ loại proxy SOCKS |
7. Xác thực | Hỗ trợ các kỹ thuật xác thực bổ sung cho proxy HTTP | Chỉ hỗ trợ các quy trình xác thực cơ bản cho proxy HTTP |
8. Tính di động | Di động hơn và được cài đặt sẵn trên Windows và macOS | Ít di động hơn và không được cài đặt sẵn trên Windows và macOS |
9. Tính năng | Yêu cầu mọi tính năng phải được chỉ định trực tiếp | Có các tính năng như cookie và dấu thời gian được bật theo mặc định |
10. Yêu cầu | Không yêu cầu gói gnulib hoặc trình biên dịch C99 | Yêu cầu trình biên dịch gnulib và C99 Khi nào nên sử dụng cURL hoặc Wget |
Trong hầu hết các trường hợp, cURL là lựa chọn tốt nhất, nhưng có những trường hợp Wget thích hợp hơn. Bạn phải xác định tiện ích dòng lệnh nào trong số này sẽ giúp bạn hoàn thành nhiệm vụ của mình nhanh hơn và hiệu quả hơn. Ví dụ:
- Wget xử lý việc thử tải xuống lại qua các kết nối không ổn định tốt hơn cURL.
- Wget cung cấp các khả năng tải xuống như tải xuống đệ quy quyết định và kiểm soát băng thông mà cURL thiếu.
Vì vậy, tốt nhất nên sử dụng lệnh Wget trong những tình huống như vậy. Ngoài ra, khi sử dụng giao thức mạng không phải HTTP/HTTPS và FTP, cURL là lựa chọn tốt hơn. Việc bạn lựa chọn sử dụng cURL hay Wget sẽ luôn phụ thuộc vào đặc thù của nhiệm vụ bạn đang thực hiện.
Phần kết luận
Lệnh cURL là công cụ mạnh mẽ và linh hoạt dành cho bất kỳ ai cần truyền khối lượng lớn dữ liệu qua mạng. Sử dụng cURL với proxy là một bản nâng cấp mong muốn cho phép bạn hoàn thành hầu như mọi tác vụ. Sự kết hợp này đảm bảo quyền riêng tư và bảo mật dữ liệu mà không làm mất tính linh hoạt của các lệnh cURL. Mặc dù Wget rất rộng lớn nhưng cURL vẫn được ưa chuộng hơn vì giao diện thân thiện với người dùng và khả năng mạnh mẽ.
Dựa trên những gì chúng ta đã thảo luận cho đến nay, bạn có thể đang cân nhắc thử những hiệu ứng thú vị của cURL. Nếu bạn chưa xem xét nó, bạn nên. Luôn cURLy (ý định chơi chữ).