Quay lại Blog
Aug. 11th 2025

Cách lấy dữ liệu sản phẩm Amazon bằng cách sử dụng proxy dân cư Nstproxy.

Scraping Amazon mà không có proxy đồng nghĩa với việc bị cấm IP ngay lập tức và vô số CAPTCHAs. Tìm hiểu cách sử dụng Proxy Dân cư Nstproxy để thu thập dữ liệu sản phẩm một cách đáng tin cậy, vượt qua việc phát hiện và mở rộng trí tuệ thương mại điện tử của bạn.

Scraping Amazon mà không có proxy là một cuộc chiến thất bại.
Bạn sẽ nhanh chóng bị cấm IP, gặp phải CAPTCHAs vô tận và bị giới hạn tần suất trước khi bạn thu thập bất kỳ thông tin hữu ích nào.
Hệ thống chống bot của Amazon là một trong những hệ thống khó khăn nhất trên internet.

Để giữ kín hoạt động, việc sử dụng proxy là cần thiết.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách scrape Amazon một cách hiệu quả bằng cách sử dụng Proxy dân cư của Nstproxy — một phương pháp đáng tin cậy để trích xuất dữ liệu sản phẩm mà không bị chặn.


Tại sao bạn cần proxy để scrape Amazon

Amazon sử dụng các kỹ thuật chống scraping mạnh mẽ:

  • Theo dõi IP & giới hạn tần suất
  • Phát hiện hành vi bot
  • Chặn theo địa lý
  • Thử thách JavaScript & CAPTCHAs

Không có proxy, gửi nhiều yêu cầu từ một IP duy nhất sẽ nhanh chóng khiến bạn bị đánh dấu.

Proxy dân cư như của Nstproxy mô phỏng lưu lượng người dùng thực từ các thiết bị và ISP thực, làm cho trình scrape của bạn trông hợp pháp.


Tại sao chọn Proxy Dân Cư của Nstproxy?

Nstproxy cung cấp:

  • 90 triệu+ IP từ 195+ quốc gia
  • Hỗ trợ SOCKS5 & HTTP/HTTPS
  • Kiểm soát phiên cho IP cố định hoặc luân phiên
  • Định tuyến cổng tối ưu (Mỹ, EU, APAC)

✅ Lý tưởng cho scraping quy mô lớn Amazon, giám sát giánghiên cứu đối thủ.


Loại Proxy Tốt Nhất cho Amazon: Dân Cư Với Luân Phiên

So sánh các loại Proxy:

Loại Proxy Ưu điểm Nhược điểm
Data center Nhanh Dễ dàng bị chặn
Di động Hoàn toàn ẩn danh Đắt
Dân cư Ẩn danh cao, chi phí hợp lý, hiệu quả Cân bằng tốt nhất cho việc sử dụng trên Amazon

🔹 Đối với scraping Amazon, proxy dân cư luân phiên là hiệu quả nhất — chúng cung cấp IP thật từ người dùng thực, luân phiên theo thời gian để tránh bị phát hiện.


Thiết lập Nstproxy với Python

Sau khi bạn đã mua gói proxy:

  1. Đi đến Thiết lập Proxy trong bảng điều khiển
  2. Chọn Python từ các tùy chọn ngôn ngữ mã
  3. Sao chép đoạn mã sẵn sàng sử dụng với thông tin của bạn

Dưới đây là cách sử dụng proxy dân cư của Nstproxy trong một trình scrape Python với thư viện requests:

username = 'Tên người dùng của bạn'
password = 'Mật khẩu của bạn'
host = 'gate.nstproxy.io'
port = '24125'

proxy = f'http://{username}:{password}@{host}:{port}'
proxies = {
    "http": proxy,
    "https": proxy
}

Ví dụ Về Toàn Bộ Kịch Bản Scraping Amazon

Dưới đây là toàn bộ kịch bản cho việc scraping Amazon giống như với https://www.amazon.com/s?k=apple :

import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup
import pandas as pd

username = 'YOUR Nstproxy Username'
password = 'Your password'
host = 'gate.nstproxy.io'
port = '24125'

proxy = f'http://{username}:{password}@{host}:{port}'
proxies = {
    "http": proxy,
    "https": proxy
}

custom_headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    'Accept-Language': 'da, en-gb, en',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.7',
    'Referer': 'https://www.google.com/'
}


def parse_listing(listing_url, visited_urls, current_page=1, max_pages=2):
    resp = requests.get(
        listing_url, headers=custom_headers, proxies=proxies
    )
    print(resp.status_code)
    soup_search = BeautifulSoup(resp.text, 'lxml')
    link_elements = soup_search.select(
        '[data-cy="title-recipe"] > a.a-link-normal'
    )

    page_data = []

    for link in link_elements:
        full_url = urljoin(listing_url, link.attrs.get('href'))
        if full_url not in visited_urls:
            visited_urls.add(full_url)
            print(f'Scraping product from {full_url[:100]}', flush=True)
            product_info = get_product_info(full_url)
            if product_info:
                page_data.append(product_info)
                time.sleep(random.uniform(3, 7))

    next_page_el = soup_search.select_one('a.s-pagination-next')
    if next_page_el and current_page < max_pages:
        next_page_url = next_page_el.attrs.get('href')
        next_page_url = urljoin(listing_url, next_page_url)
        print(
            f'Scraping next page: {next_page_url}'
            f'(Page {current_page + 1} of {max_pages})',
            flush=True
        )
        page_data += parse_listing(
            next_page_url, visited_urls, current_page + 1, max_pages
        )

    return page_data


def get_product_info(url):
    resp = requests.get(url, headers=custom_headers, proxies=proxies)
    if resp.status_code != 200:
        print(f'Error in getting webpage: {url}')
        return None

    soup = BeautifulSoup(resp.text, 'lxml')

    title_element = soup.select_one('#productTitle')
    title = title_element.text.strip() if title_element else None

    price_e = soup.select_one('#corePrice_feature_div span.a-offscreen')
    price = price_e.text if price_e else None

    rating_element = soup.select_one('#acrPopover')
    rating_text = rating_element.attrs.get('title') if rating_element else None
    rating = rating_text.replace('out of 5 stars', '') if rating_text else None

    image_element = soup.select_one('#landingImage')
    image = image_element.attrs.get('src') if image_element else None

    description_element = soup.select_one(
        '#productDescription, #feature-bullets > ul'
    )
    description = (
        description_element.text.strip() if description_element else None
    )

    return {
        'title': title,
        'price': price,
        'rating': rating,
        'image': image,
        'description': description,
        'url': url
    }


def main():
    visited_urls = set()
    search_url = 'https://www.amazon.com/s?k=apple'
    data = parse_listing(search_url, visited_urls)
    df = pd.DataFrame(data)
    df.to_csv('apple.csv', index=False)


if __name__ == '__main__':
    main()

Mẹo để Giải nén Amazon Thành Công

  1. Xoay vòng User-Agents — Tránh sử dụng cùng một cái liên tục
  2. Sử dụng Sessions Một Cách Khôn NgoansessionDuration cho tính ổn định (ví dụ: đăng nhập)
  3. Độ Trễ Ngẫu Nhiêntime.sleep(random.uniform(1, 3))
  4. Xử Lý Lỗi — Thử lại khi gặp 503 / 429 với backoff theo cấp số nhân
  5. Phát hiện CAPTCHA — Chuyển sang một phiên mới khi bị kích hoạt

Thách Thức và Giải Pháp

Thách thức Giải pháp
Chặn IP Sử dụng proxy dân cư xoay vòng Nstproxy
Giới hạn tốc độ Thêm độ trễ và xoay vòng IP & tiêu đề
Thay đổi cấu trúc Kiểm tra DOM bằng tay, điều chỉnh bộ chọn tương ứng

Suy Nghĩ Cuối Cùng

Giải nén Amazon là khó — nhưng không phải là không thể.
Với proxy dân cư Nstproxy, xoay vòng IP và hành vi duyệt web thực tế, bạn có thể thu thập dữ liệu sản phẩm giá trị cao ở quy mô mà không bị chặn.

🚀 Bắt đầu dùng thử Nstproxy của bạn hôm nay — 5GB miễn phí
Cần giúp đỡ về việc tích hợp? Chúng tôi sẵn sàng hỗ trợ.

Lena Zhou
Lena ZhouGrowth & Integration Specialist
Mục lục

Nstproxy

Mở rộng quy mô kinh doanh của bạn với Nstproxy

Nstproxy
© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED