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á và 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:
- Đi đến Thiết lập Proxy trong bảng điều khiển
- Chọn Python từ các tùy chọn ngôn ngữ mã
- 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
- Xoay vòng User-Agents — Tránh sử dụng cùng một cái liên tục
- Sử dụng Sessions Một Cách Khôn Ngoan —
sessionDuration
cho tính ổn định (ví dụ: đăng nhập) - Độ Trễ Ngẫu Nhiên —
time.sleep(random.uniform(1, 3))
- Xử Lý Lỗi — Thử lại khi gặp
503
/429
với backoff theo cấp số nhân - 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ợ.