Quay lại blog

Cách cấu hình proxy trong curl và wget: hướng dẫn đầy đủ với ví dụ cho việc phân tích dữ liệu

Hướng dẫn chi tiết về việc sử dụng proxy trong curl và wget: ví dụ lệnh, cấu hình xác thực, vượt qua các khối khi phân tích và tự động hóa các yêu cầu.

📅14 tháng 2, 2026
```html

Khi phân tích các trang web, tự động hóa các yêu cầu API hoặc theo dõi giá cả của đối thủ trên các thị trường trực tuyến, bạn sẽ không thể tránh khỏi việc bị chặn theo IP. Các công cụ curl và wget là những công cụ tiêu chuẩn để làm việc với các yêu cầu HTTP trong dòng lệnh, và việc cài đặt proxy đúng cách trong chúng là rất quan trọng để vượt qua các hạn chế. Trong bài viết này, chúng ta sẽ xem xét tất cả các cách sử dụng proxy trong curl và wget: từ các lệnh cơ bản đến các kịch bản nâng cao với việc xoay vòng IP và xử lý lỗi.

Cú pháp cơ bản của proxy trong curl và wget

Bắt đầu với những lệnh đơn giản nhất để kết nối qua proxy. Cả hai công cụ đều hỗ trợ tham số để chỉ định máy chủ proxy, nhưng cú pháp có chút khác biệt.

Sử dụng proxy trong curl

Trong curl, proxy được chỉ định qua tham số -x hoặc --proxy. Định dạng cơ bản của lệnh:

curl -x http://proxy-server:port http://example.com

Ví dụ cụ thể với một máy chủ proxy thực tế:

curl -x http://45.130.123.45:8080 http://api.ipify.org

Lệnh này sẽ gửi yêu cầu đến api.ipify.org (dịch vụ trả về địa chỉ IP của bạn) qua máy chủ proxy đã chỉ định. Bạn sẽ thấy IP của proxy, chứ không phải địa chỉ thực của bạn.

Sử dụng proxy trong wget

Trong wget, proxy được cài đặt qua tham số -e use_proxy=yes và các biến môi trường, hoặc trực tiếp qua các tùy chọn:

wget -e use_proxy=yes -e http_proxy=http://45.130.123.45:8080 http://example.com

Hoặc một cách ngắn gọn hơn qua các biến môi trường (sẽ được giải thích chi tiết hơn trong phần dưới):

export http_proxy="http://45.130.123.45:8080"
wget http://example.com

Xác thực trên máy chủ proxy

Hầu hết các dịch vụ proxy thương mại yêu cầu xác thực bằng tên đăng nhập và mật khẩu. Điều này bảo vệ proxy khỏi việc sử dụng trái phép và cho phép theo dõi lưu lượng của từng khách hàng. Hãy xem xét cách truyền thông tin xác thực trong curl và wget.

Xác thực trong curl

Trong curl, tên đăng nhập và mật khẩu có thể được chỉ định trực tiếp trong URL của máy chủ proxy hoặc qua tham số riêng -U:

# Cách 1: tên đăng nhập và mật khẩu trong URL
curl -x http://username:password@proxy-server:port http://example.com

# Cách 2: qua tham số -U
curl -x http://proxy-server:port -U username:password http://example.com

Ví dụ cụ thể với thông tin xác thực:

curl -x http://user123:pass456@45.130.123.45:8080 http://api.ipify.org

Một điểm quan trọng: nếu mật khẩu có các ký tự đặc biệt (@, :, /, ?), chúng cần được mã hóa theo định dạng URL. Ví dụ, ký tự @ được thay thế bằng %40:

# Nếu mật khẩu chứa @: pass@456
curl -x http://user123:pass%40456@45.130.123.45:8080 http://api.ipify.org

Xác thực trong wget

Trong wget, xác thực được cài đặt qua các tham số --proxy-user--proxy-password:

wget --proxy-user=username --proxy-password=password \
     -e use_proxy=yes -e http_proxy=http://45.130.123.45:8080 \
     http://example.com

Hoặc qua các biến môi trường với thông tin xác thực trong URL:

export http_proxy="http://username:password@45.130.123.45:8080"
wget http://example.com

Làm việc với các loại proxy khác nhau: HTTP, HTTPS, SOCKS5

Các máy chủ proxy hoạt động theo nhiều giao thức khác nhau, và việc chọn loại phụ thuộc vào nhiệm vụ. Proxy HTTP phù hợp cho các yêu cầu đơn giản, HTTPS cung cấp mã hóa, trong khi SOCKS5 hoạt động ở mức thấp hơn và hỗ trợ bất kỳ loại lưu lượng nào. Khi phân tích các thị trường như Wildberries hoặc Ozon, thường sử dụng proxy dân cư, có thể hoạt động theo bất kỳ giao thức nào trong số này.

Proxy HTTP và HTTPS

Proxy HTTP là loại phổ biến nhất. Chúng hoạt động ở cấp độ giao thức HTTP và phù hợp cho hầu hết các nhiệm vụ phân tích web:

# Proxy HTTP trong curl
curl -x http://proxy-server:8080 http://example.com

# Proxy HTTPS trong curl (cho các kết nối bảo mật)
curl -x https://proxy-server:8080 https://example.com

Quan trọng: ngay cả khi trang web mục tiêu sử dụng HTTPS, proxy có thể là HTTP. Curl sẽ tự động thiết lập một đường hầm qua phương thức CONNECT:

# Proxy HTTP cho trang HTTPS (hoạt động chính xác)
curl -x http://proxy-server:8080 https://secure-site.com

Proxy SOCKS5

SOCKS5 là một giao thức đa năng hơn, hoạt động ở cấp độ TCP và hỗ trợ bất kỳ loại lưu lượng nào (HTTP, HTTPS, FTP, thậm chí UDP). Điều này làm cho SOCKS5 trở thành lựa chọn lý tưởng cho các nhiệm vụ tự động hóa phức tạp:

# SOCKS5 trong curl
curl -x socks5://proxy-server:1080 http://example.com

# SOCKS5 với xác thực
curl -x socks5://username:password@proxy-server:1080 http://example.com

# SOCKS5h (giải quyết DNS qua proxy)
curl -x socks5h://proxy-server:1080 http://example.com

Sự khác biệt giữa socks5 và socks5h: trong trường hợp đầu tiên, các yêu cầu DNS đi từ máy tính của bạn, trong khi trong trường hợp thứ hai — qua máy chủ proxy. Sử dụng socks5h nếu bạn muốn hoàn toàn ẩn hoạt động của mình, bao gồm cả các yêu cầu DNS.

Trong wget, hỗ trợ SOCKS5 bị hạn chế, vì vậy cho những nhiệm vụ như vậy, tốt hơn là sử dụng curl hoặc các tiện ích bổ sung như proxychains.

Mẹo: Để phân tích các thị trường (Wildberries, Ozon, Yandex.Market), nên sử dụng proxy dân cư hoặc di động với giao thức HTTP/HTTPS — chúng ít bị chặn hơn, vì có IP của người dùng thực.

Cài đặt proxy qua các biến môi trường

Nếu bạn thường xuyên làm việc qua proxy, việc cài đặt các biến môi trường một lần sẽ tiện lợi hơn là chỉ định các tham số trong mỗi lệnh. Curl và wget sẽ tự động đọc các biến này.

Cài đặt cho phiên hiện tại

Xuất các biến trong terminal (có hiệu lực cho đến khi phiên kết thúc):

# Đối với lưu lượng HTTP
export http_proxy="http://username:password@proxy-server:8080"

# Đối với lưu lượng HTTPS
export https_proxy="http://username:password@proxy-server:8080"

# Đối với lưu lượng FTP
export ftp_proxy="http://username:password@proxy-server:8080"

# Đối với SOCKS5
export all_proxy="socks5://username:password@proxy-server:1080"

Sau đó, curl và wget sẽ tự động sử dụng proxy:

# Proxy sẽ được áp dụng tự động
curl http://api.ipify.org
wget http://example.com

Cài đặt vĩnh viễn trong .bashrc hoặc .zshrc

Để proxy được áp dụng mỗi khi mở terminal, hãy thêm các biến vào tệp cấu hình của shell của bạn:

# Mở tệp trong trình soạn thảo
nano ~/.bashrc  # cho bash
# hoặc
nano ~/.zshrc   # cho zsh

# Thêm vào cuối tệp:
export http_proxy="http://username:password@proxy-server:8080"
export https_proxy="http://username:password@proxy-server:8080"

# Lưu và áp dụng thay đổi:
source ~/.bashrc

Ngoại lệ: no_proxy

Đôi khi cần phải loại trừ một số địa chỉ khỏi việc sử dụng proxy (ví dụ: localhost hoặc các dịch vụ nội bộ):

export no_proxy="localhost,127.0.0.1,192.168.0.0/16,.local"

Bây giờ, các yêu cầu đến những địa chỉ này sẽ đi trực tiếp, bỏ qua proxy.

Xoay vòng proxy trong các kịch bản bash

Khi phân tích hàng loạt (ví dụ: thu thập giá từ hàng ngàn thẻ sản phẩm trên Wildberries), việc sử dụng một proxy sẽ dẫn đến việc bị chặn. Giải pháp là xoay vòng các địa chỉ IP. Hãy xem xét cách thực hiện điều này trong các kịch bản bash.

Xoay vòng đơn giản từ danh sách proxy

Tạo một tệp proxies.txt với danh sách các máy chủ proxy (mỗi máy chủ một dòng):

http://user1:pass1@proxy1.example.com:8080
http://user2:pass2@proxy2.example.com:8080
http://user3:pass3@proxy3.example.com:8080

Kịch bản cho việc xoay vòng proxy tuần tự:

#!/bin/bash

# Tệp chứa danh sách URL để phân tích
urls_file="urls.txt"
# Tệp chứa danh sách proxy
proxies_file="proxies.txt"

# Đọc proxy vào mảng
mapfile -t proxies < "$proxies_file"
proxy_count=${#proxies[@]}
current_proxy=0

# Xử lý từng URL
while IFS= read -r url; do
    # Chọn proxy theo vòng
    proxy="${proxies[$current_proxy]}"
    
    echo "Yêu cầu đến $url qua $proxy"
    curl -x "$proxy" -s "$url" -o "output_$(basename $url).html"
    
    # Chuyển sang proxy tiếp theo
    current_proxy=$(( (current_proxy + 1) % proxy_count ))
    
    # Tạm dừng giữa các yêu cầu (1-3 giây)
    sleep $((RANDOM % 3 + 1))
done < "$urls_file"

Kịch bản này sẽ sử dụng tuần tự các proxy từ danh sách, quay lại proxy đầu tiên sau khi sử dụng proxy cuối cùng. Thời gian tạm dừng ngẫu nhiên giữa các yêu cầu làm cho hoạt động trở nên tự nhiên hơn.

Chọn proxy ngẫu nhiên

Để tăng tính không thể đoán trước, bạn có thể chọn proxy một cách ngẫu nhiên:

#!/bin/bash

proxies_file="proxies.txt"
mapfile -t proxies < "$proxies_file"
proxy_count=${#proxies[@]}

while IFS= read -r url; do
    # Chọn proxy ngẫu nhiên
    random_index=$((RANDOM % proxy_count))
    proxy="${proxies[$random_index]}"
    
    echo "Yêu cầu đến $url qua proxy #$random_index"
    curl -x "$proxy" -s "$url" -o "output_$(date +%s).html"
    
    sleep $((RANDOM % 3 + 1))
done < "urls.txt"

Xoay vòng tự động qua API của dịch vụ proxy

Nhiều nhà cung cấp proxy (bao gồm các dịch vụ cung cấp proxy dân cư) cung cấp xoay vòng tự động qua một điểm truy cập duy nhất. Bạn sử dụng một địa chỉ proxy, trong khi IP thay đổi với mỗi yêu cầu hoặc theo thời gian:

# Proxy với xoay vòng tự động
# IP thay đổi với mỗi yêu cầu
curl -x http://username:password@rotating.proxy.com:8080 http://api.ipify.org
curl -x http://username:password@rotating.proxy.com:8080 http://api.ipify.org

# Hai yêu cầu trên sẽ nhận được các địa chỉ IP khác nhau

Đây là cách thuận tiện nhất cho việc phân tích quy mô lớn — không cần quản lý danh sách proxy bằng tay.

Truyền tiêu đề và User-Agent qua proxy

Các trang web hiện đại phân tích không chỉ địa chỉ IP mà còn cả các tiêu đề HTTP của yêu cầu. Việc thiếu User-Agent hoặc các tiêu đề nghi ngờ có thể dẫn đến việc bị chặn ngay cả khi sử dụng các proxy chất lượng. Hãy xem xét cách cấu hình tiêu đề đúng cách trong curl và wget.

User-Agent trong curl

User-Agent là tiêu đề xác định trình duyệt và hệ điều hành. Curl mặc định gửi User-Agent của riêng mình (curl/7.x.x), điều này ngay lập tức tiết lộ việc tự động hóa. Thay thế nó bằng trình duyệt thực tế:

# Chrome trên Windows
curl -x http://proxy:8080 \
     -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
     http://example.com

# Firefox trên macOS
curl -x http://proxy:8080 \
     -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0" \
     http://example.com

Các tiêu đề bổ sung

Để có một yêu cầu thực tế hơn, hãy thêm các tiêu đề trình duyệt điển hình:

curl -x http://proxy:8080 \
     -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0" \
     -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \
     -H "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8" \
     -H "Accept-Encoding: gzip, deflate, br" \
     -H "Connection: keep-alive" \
     -H "Upgrade-Insecure-Requests: 1" \
     http://example.com

User-Agent trong wget

Trong wget, User-Agent được chỉ định qua tham số --user-agent:

wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0" \
     -e use_proxy=yes -e http_proxy=http://proxy:8080 \
     http://example.com

Ngẫu nhiên hóa User-Agent trong các kịch bản

Đối với việc phân tích quy mô lớn, việc luân phiên User-Agent sẽ hữu ích để các yêu cầu trông như đến từ nhiều người dùng khác nhau:

#!/bin/bash

# Mảng User-Agent
user_agents=(
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0 Safari/537.36"
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Safari/605.1.15"
    "Mozilla/5.0 (X11; Linux x86_64) Firefox/121.0"
    "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) Safari/604.1"
)

while IFS= read -r url; do
    # User-Agent ngẫu nhiên
    random_ua=${user_agents[$RANDOM % ${#user_agents[@]}]}
    
    curl -x http://proxy:8080 -A "$random_ua" -s "$url"
    sleep 2
done < "urls.txt"

Chẩn đoán vấn đề và xử lý lỗi

Khi làm việc với proxy, thường xảy ra lỗi: thời gian chờ, từ chối kết nối, xác thực không đúng. Hãy xem xét cách chẩn đoán và xử lý những tình huống này.

Kiểm tra tính khả dụng của proxy

Cách đơn giản nhất để kiểm tra proxy là yêu cầu dịch vụ trả về địa chỉ IP của bạn:

# Kiểm tra proxy HTTP
curl -x http://proxy:8080 http://api.ipify.org

# Kiểm tra proxy SOCKS5
curl -x socks5://proxy:1080 http://api.ipify.org

# Với thông tin chi tiết
curl -x http://proxy:8080 -v http://api.ipify.org

Tham số -v (verbose) sẽ hiển thị chi tiết kết nối, bao gồm cả tiêu đề và lỗi.

Xử lý thời gian chờ

Các proxy chậm hoặc máy chủ quá tải có thể gây ra thời gian chờ. Đặt các giới hạn thời gian hợp lý:

# Thời gian chờ kết nối 10 giây, thời gian chờ tổng cộng 30 giây
curl -x http://proxy:8080 --connect-timeout 10 --max-time 30 http://example.com

# Trong wget
wget --timeout=30 --tries=3 -e http_proxy=http://proxy:8080 http://example.com

Xử lý lỗi tự động trong các kịch bản

Kịch bản cho việc phân tích với việc tự động chuyển sang proxy tiếp theo khi có lỗi:

#!/bin/bash

proxies_file="proxies.txt"
mapfile -t proxies < "$proxies_file"

fetch_with_retry() {
    local url=$1
    local max_attempts=3
    
    for proxy in "${proxies[@]}"; do
        echo "Thử qua proxy: $proxy"
        
        if curl -x "$proxy" \
                --connect-timeout 10 \
                --max-time 30 \
                -s -f "$url" -o output.html; then
            echo "Thành công với proxy: $proxy"
            return 0
        else
            echo "Lỗi với proxy: $proxy, thử proxy tiếp theo"
        fi
    done
    
    echo "Tất cả các proxy đều không khả dụng cho $url"
    return 1
}

# Sử dụng
fetch_with_retry "http://example.com/page1"

Tham số -f khiến curl trả về lỗi khi gặp các trạng thái HTTP 4xx và 5xx, cho phép xử lý không chỉ các lỗi mạng mà còn cả các chặn ở mức ứng dụng.

Ghi log để gỡ lỗi

Lưu trữ các log chi tiết của các yêu cầu để phân tích các vấn đề:

# Lưu tiêu đề phản hồi
curl -x http://proxy:8080 -D headers.txt http://example.com

# Log đầy đủ của tương tác
curl -x http://proxy:8080 -v http://example.com 2>&1 | tee curl.log

# Chỉ trạng thái HTTP
curl -x http://proxy:8080 -o /dev/null -s -w "%{http_code}\n" http://example.com

Các kịch bản sử dụng thực tế

Hãy xem xét các nhiệm vụ thực tế, nơi curl và wget với proxy giải quyết các vấn đề kinh doanh cụ thể.

Phân tích giá cả của đối thủ trên các thị trường trực tuyến

Nhiệm vụ: thu thập giá của 500 sản phẩm của đối thủ từ Wildberries để phân tích chiến lược giá. Wildberries thường xuyên chặn các yêu cầu hàng loạt từ một IP.

Giải pháp: sử dụng proxy dân cư với việc xoay vòng và ngẫu nhiên hóa User-Agent:

#!/bin/bash

# Proxy với xoay vòng tự động
PROXY="http://user:pass@rotating-residential.proxy.com:8080"

# Mảng User-Agent
user_agents=(
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0"
    "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0) Safari/604.1"
)

# Đọc ID sản phẩm từ tệp
while IFS= read -r product_id; do
    ua=${user_agents[$RANDOM % ${#user_agents[@]}]}
    
    curl -x "$PROXY" \
         -A "$ua" \
         -H "Accept-Language: ru-RU,ru;q=0.9" \
         -s "https://www.wildberries.ru/catalog/${product_id}/detail.aspx" \
         -o "products/${product_id}.html"
    
    echo "Tải xuống sản phẩm $product_id"
    sleep $((RANDOM % 5 + 3))  # Tạm dừng 3-8 giây
done < product_ids.txt

Theo dõi tính khả dụng của API từ các khu vực khác nhau

Nhiệm vụ: kiểm tra cách API của dịch vụ của bạn hoạt động cho người dùng từ các quốc gia khác nhau (chặn địa lý, tốc độ phản hồi).

Giải pháp: proxy với IP từ các quốc gia cần thiết:

#!/bin/bash

# Proxy từ các quốc gia khác nhau
declare -A proxies=(
    ["US"]="http://user:pass@us-proxy.com:8080"
    ["DE"]="http://user:pass@de-proxy.com:8080"
    ["JP"]="http://user:pass@jp-proxy.com:8080"
)

API_URL="https://api.yourservice.com/v1/status"

for country in "${!proxies[@]}"; do
    echo "Kiểm tra từ $country..."
    
    response_time=$(curl -x "${proxies[$country]}" \
                         -s -o /dev/null \
                         -w "%{time_total}" \
                         "$API_URL")
    
    http_code=$(curl -x "${proxies[$country]}" \
                     -s -o /dev/null \
                     -w "%{http_code}" \
                     "$API_URL")
    
    echo "$country: HTTP $http_code, thời gian phản hồi ${response_time}s"
done

Tải xuống tệp qua wget với việc xoay vòng proxy

Nhiệm vụ: tải xuống một tập hợp tệp (hình ảnh sản phẩm, tài liệu) từ một trang web, nơi giới hạn tốc độ cho một IP.

#!/bin/bash

proxies_file="proxies.txt"
mapfile -t proxies < "$proxies_file"
proxy_count=${#proxies[@]}
current=0

while IFS= read -r file_url; do
    proxy="${proxies[$current]}"
    filename=$(basename "$file_url")
    
    echo "Tải xuống $filename qua proxy #$current"
    
    wget --proxy-user=username --proxy-password=password \
         -e use_proxy=yes -e http_proxy="$proxy" \
         -O "downloads/$filename" \
         "$file_url"
    
    current=$(( (current + 1) % proxy_count ))
    sleep 2
done < file_urls.txt

Kiểm tra các quảng cáo sáng tạo ở các GEO khác nhau

Nhiệm vụ: kiểm tra cách các quảng cáo Facebook Ads xuất hiện cho người dùng từ Mỹ, Canada và Vương quốc Anh (các loại tiền tệ khác nhau, ngôn ngữ, tính khả dụng của các ưu đãi).

#!/bin/bash

# Proxy di động từ các quốc gia khác nhau để tính thực tế
declare -A mobile_proxies=(
    ["US"]="http://user:pass@us-mobile.proxy.com:8080"
    ["CA"]="http://user:pass@ca-mobile.proxy.com:8080"
    ["GB"]="http://user:pass@gb-mobile.proxy.com:8080"
)

AD_URL="https://www.facebook.com/ads/library/?id=YOUR_AD_ID"

for country in "${!mobile_proxies[@]}"; do
    curl -x "${mobile_proxies[$country]}" \
         -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0) Safari/604.1" \
         -H "Accept-Language: en-US,en;q=0.9" \
         -s "$AD_URL" \
         -o "ads_preview_${country}.html"
    
    echo "Đã lưu trước cho $country"
done

Đối với những nhiệm vụ như vậy, proxy di động đặc biệt hiệu quả, vì chúng mô phỏng người dùng thực tế trên điện thoại thông minh và ít gây nghi ngờ hơn với các hệ thống chống gian lận của Facebook.

Quan trọng đối với các nhà quảng cáo: Khi kiểm tra các quảng cáo sáng tạo qua proxy, hãy sử dụng IP di động và User-Agent tương ứng với các thiết bị di động. Facebook phân tích tính nhất quán của dữ liệu (loại thiết bị theo User-Agent phải tương ứng với loại IP).

Tự động hóa kiểm tra tính khả dụng của trang web

Nhiệm vụ: theo dõi tính khả dụng của trang web của bạn mỗi 5 phút, mô phỏng các yêu cầu từ người dùng thực (không từ IP máy chủ).

#!/bin/bash

PROXY="http://user:pass@residential.proxy.com:8080"
SITE_URL="https://yoursite.com"
LOG_FILE="uptime.log"

while true; do
    timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    http_code=$(curl -x "$PROXY" \
                     -s -o /dev/null \
                     -w "%{http_code}" \
                     --max-time 10 \
                     "$SITE_URL")
    
    if [ "$http_code" -eq 200 ]; then
        echo "[$timestamp] OK - HTTP $http_code" >> "$LOG_FILE"
    else
        echo "[$timestamp] ERROR - HTTP $http_code" >> "$LOG_FILE"
        # Gửi thông báo (ví dụ, qua API Telegram)
        curl -s "https://api.telegram.org/botTOKEN/sendMessage" \
             -d "chat_id=CHAT_ID&text=Trang web không khả dụng: HTTP $http_code"
    fi
    
    sleep 300  # 5 phút
done

Kết luận

Curl và wget là những công cụ mạnh mẽ cho việc tự động hóa các yêu cầu HTTP, và việc cài đặt proxy đúng cách làm cho chúng trở nên không thể thiếu cho việc phân tích, theo dõi và kiểm tra. Chúng ta đã xem xét tất cả các khía cạnh chính: từ cú pháp cơ bản đến các kịch bản nâng cao với việc xoay vòng IP, xử lý lỗi và ngẫu nhiên hóa tiêu đề.

Các điểm chính từ bài viết:

  • Sử dụng tham số -x trong curl và các biến môi trường để cài đặt proxy
  • Chọn loại proxy phù hợp với nhiệm vụ: HTTP cho các yêu cầu đơn giản, SOCKS5 cho tính đa năng
  • Luôn thay thế User-Agent mặc định bằng một trình duyệt thực tế
  • Thực hiện xoay vòng proxy cho việc phân tích quy mô lớn — điều này rất quan trọng để vượt qua các chặn
  • Thêm xử lý lỗi và thời gian chờ vào các kịch bản sản xuất
  • Sử dụng thời gian tạm dừng ngẫu nhiên giữa các yêu cầu để mô phỏng hành vi của con người

Đối với các nhiệm vụ yêu cầu mức độ ẩn danh cao và rủi ro thấp về việc bị chặn (phân tích các thị trường, kiểm tra quảng cáo, theo dõi đối thủ), chúng tôi khuyên bạn nên sử dụng proxy dân cư. Chúng có IP của người dùng thực, điều này làm cho các yêu cầu của bạn không thể phân biệt với lưu lượng thông thường và giảm đáng kể khả năng bị đưa vào danh sách chặn.

Bây giờ bạn đã có bộ công cụ và kiến thức đầy đủ để làm việc hiệu quả với proxy trong curl và wget. Áp dụng những kỹ thuật này vào các dự án của bạn, điều chỉnh các ví dụ cho các nhiệm vụ cụ thể và mở rộng tự động hóa mà không sợ bị chặn.

```