Вернуться к блогу
Aug. 11th 2025

Как извлекать данные о продуктах Amazon с использованием резидентских прокси Nstproxy

Скрейпинг Amazon без прокси означает мгновенные блокировки IP и бесконечные CAPTCHA. Узнайте, как использовать прокси-серверы Nstproxy Residential для надежного сбора данных о продуктах, обхода обнаружения и масштабирования вашей коммерческой информации.

Скрейпинг Amazon без прокси — это проигрышная битва. Вы быстро столкнетесь с блокировками IP, бесконечными CAPTCHA и ограничениями по скорости, прежде чем соберете что-то полезное. Анти-бот системы Amazon — одни из самых строгих в интернете.

Чтобы оставаться незамеченным, прокси необходимы. В этой статье мы покажем вам, как эффективно скрейпить Amazon, используя Резидентные прокси от Nstproxy — надежный способ извлечь данные о продуктах, не получая блокировку.


Почему вам нужны прокси для скрейпинга Amazon

Amazon использует агрессивные методы против скрейпинга:

  • Отслеживание IP и лимитирование скорости
  • Обнаружение поведения ботов
  • Гео-блокировка
  • Задачи на JavaScript и CAPTCHA

Без прокси отправлять несколько запросов с одного IP будет быстро отмечено.

Резидентные прокси от Nstproxy имитируют реальный трафик пользователей с реальных устройств и провайдеров, что делает ваш скрейпер законным.


Почему стоит выбрать резидентные прокси от Nstproxy?

Nstproxy предлагает:

  • Более 90 миллионов IP из более чем 195 стран
  • Поддержка SOCKS5 и HTTP/HTTPS
  • Управление сессиями для фиксированных или вращающихся IP
  • Оптимизированная маршрутизация шлюзов (США, ЕС, Азиатско-Тихоокеанский регион)

✅ Идеально подходит для масштабного скрейпинга Amazon, мониторинга цен и исследования конкурентов.


Лучший тип прокси для Amazon: резидентные с ротацией

Сравнение типов прокси:

Тип прокси Преимущества Недостатки
Датацентр Быстрый Легко блокируется
Мобильный Исключительно анонимный Дорогой
Резидентный Высокая анонимность, доступный, эффективный Лучший баланс для использования в Amazon

🔹 Для скрейпинга Amazon вращающиеся резидентные прокси наиболее эффективны — они предлагают реальные IP от реальных пользователей, ротация которых происходит периодически для избежания обнаружения.


Настройка Nstproxy с Python

Как только вы приобрели прокси-план:

  1. Перейдите к Настройка прокси на панели управления
  2. Выберите Python из вариантов языков кода
  3. Скопируйте готовый фрагмент кода с вашими учетными данными

Вот как использовать резидентные прокси от Nstproxy в скрейпере на Python с библиотекой requests:

username = 'YourUsername'
password = 'YourPassword'
host = 'gate.nstproxy.io'
port = '24125'

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

Полный пример скрипта для скрейпинга Amazon

Вот как выглядит полный скрипт для скрейпинга Amazon с 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()

Советы для успешного сбора данных с Amazon

  1. Меняйте User-Agent — избегайте повторного использования одного и того же
  2. Используйте сессии разумноsessionDuration для привязки (например, логины)
  3. Случайные задержкиtime.sleep(random.uniform(1, 3))
  4. Обработка ошибок — повторите попытку при 503 / 429 с экспоненциальным увеличением времени ожидания
  5. Обнаружение CAPTCHA — переключитесь на новую сессию при срабатывании

Проблемы и решения

Проблема Решение
Блокировки IP Используйте прокси Nstproxy с вращающимися резидентными прокси
Ограничение по скорости Добавьте задержки и меняйте IP и заголовки
Изменения в структуре Вручную проверьте DOM, соответственно скорректируйте селекторы

Заключительные мысли

Сбор данных с Amazon сложен — но не невозможен.
С резидентными прокси Nstproxy, вращающимися IP и реалистичным поведением при просмотре вы сможете собирать ценные данные о продуктах в больших объемах без блокировок.

🚀 Начните свой бесплатный пробный период Nstproxy сегодня — 5 ГБ бесплатно
Нужна помощь с интеграцией? Мы готовы помочь.

Lena Zhou
Lena ZhouGrowth & Integration Specialist
Каталог

Nstproxy

Масштабирование бизнеса с помощью Nstproxy

Nstproxy
© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED