Попробовать
Назад

Как парсить Amazon: инструменты, советы и хитрости для новичков

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

Амазон скрапинг (Amazon Scraping) — это процесс автоматического извлечения данных с веб-сайтов Amazon. 

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

Почему веб-скрапинг Amazon важен для бизнеса? 

Доступ к данным Amazon предоставляет компаниям критически важную информацию о рыночных тенденциях, ценовых стратегиях и поведении потребителей. Имея доступ к миллионам товаров и отзывам клиентов, компании могут отслеживать активность конкурентов, улучшать свои предложения и корректировать цены, чтобы оставаться конкурентоспособными. Анализируя отзывы клиентов Amazon, компании получают прямое понимание того, что клиенты ценят или не любят, что позволяет им улучшить разработку продуктов и удовлетворенность клиентов. На высококонкурентном рынке использование данных Amazon может стать решающим фактором, предоставляя необходимую информацию для принятия стратегических, основанных на данных решений, которые способствуют росту и успеху. 

Как парсить Amazon? 

Эффективный скрейпинг Amazon требует знания того, какой подход использовать для различных типов данных. Вот разбивка доступных методов и инструментов для сбора информации о продуктах, ценах, отзывах и других ценных данных. Мы подробно рассмотрим каждый шаг, сосредоточившись на основных инструментах, примерах кода и продвинутых методах для избежания обнаружения и обеспечения бесперебойного скрейпинга. 

Настройка для скрейпинга 

Чтобы следовать этому руководству, вам понадобятся следующие инструменты: 

Библиотеки: Установите необходимые библиотеки с помощью: bash 

pip install requests beautifulsoup4 lxml pandas 

Для пользователей, занимающихся масштабным скрапингом или сталкивающихся с динамическим контентом, такие инструменты, как Селен или Драматург рекомендуются. Дополнительно, NodeMaven или поставщик прокси-сервисов может помочь обеспечить надежные соединения для обхода блокировок по IP-адресу. 

1. Базовый веб-скрейпинг HTML с использованием Requests и BeautifulSoup 

Этот дружественный к новичкам подход использует библиотеки requests и BeautifulSoup для доступа и парсинга HTML-структуры Amazon. 

Пример кода: 

импортировать запросы 

из bs4



# URL товара на Amazon

url = 'https://www.amazon.com/dp/B098FKXT8L'



# Настройте заголовки для имитации запроса браузера

заголовки = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0 Safari/537.36',

'Accept-Language': 'en-US,en;q=0.9'

}



# Запросить содержимое страницы

response = requests.get(url, headers=headers)

суп = BeautifulSoup(response.text, 'html.parser')



# Извлечь детали продукта

title = soup.select_one('#productTitle').get_text(strip=True)

цена = soup.select_one('.a-price .a-offscreen').get_text(strip=True)

рейтинг = soup.select_one('#acrPopover').get('title')



print("Заголовок:", title)

print("Цена:", price)

print("Рейтинг:", rating)

2. Продвинутое парсинг с прокси, ротацией заголовков и маскировкой отпечатков браузера 

Amazon использует сильные средства защиты от ботов, поэтому для избежания обнаружения рекомендуется менять IP-адреса и заголовки. Кроме того, использование маскировки отпечатков браузера может улучшить вашу конфигурацию для скрейпинга, скрывая уникальные детали вашей среды просмотра, такие как разрешение экрана, часовой пояс и установленные плагины. Этот метод маскировки помогает делать запросы похожими на запросы реального пользователя, еще больше снижая вероятность блокировки. NodeMaven жилые прокси, например, предлагают уникальные сеансы прилипания и высококачественные резидентские IP-адреса, обеспечивая более плавный процесс скрейпинга. 

Пример кода с прокси: 

импортировать запросы 

из bs4

импорт рандом



# Настройка прокси с помощью NodeMaven

прокси = {

'http': 'http://your_node_maven_proxy',

'https': 'http://your_node_maven_proxy'

}



# Вращение заголовков User-Agent

user_agents = [

'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0 Safari/537.36',

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:85.0) Gecko/20100101 Firefox/85.0',

'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0'

]

headers = {'User-Agent': random.choice(user_agents)}



# Отправить запрос с прокси и заголовками

response = requests.get(url, headers=headers, proxies=proxies)

суп = BeautifulSoup(response.text, 'html.parser')



# Извлечь детали продукта

title = soup.select_one('#productTitle').get_text(strip=True)

цена = soup.select_one('.a-price .a-offscreen').get_text(strip=True)

рейтинг = soup.select_one('#acrPopover').get('title')



print("Заголовок:", title)

print("Цена:", price)

print("Рейтинг:", rating)

3. Содержимое, отображаемое JavaScript, с помощью Selenium 

Для страниц Amazon, которые динамически загружают контент, такой как отзывы или дополнительные сведения о продукте, вам может потребоваться инструмент автоматизации браузера, такой как Selenium, для загрузки и взаимодействия с элементами, отображаемыми с помощью JavaScript. 

Пример кода, использующего Selenium: 

from selenium import webdriver 

из selenium.webdriver.common.by импорт By



# Настройка Selenium WebDriver

options = webdriver.ChromeOptions()

options.add_argument('--headless') # Работает в безголовом режиме для ускорения

драйвер = webdriver.Chrome(options=options)



# Перейти на страницу товара Amazon

driver.get('https://www.amazon.com/dp/B098FKXT8L')



# Извлечение элементов с использованием Selenium

title = driver.find_element(By.ID, 'productTitle').text

цена = driver.find_element(By.CLASS_NAME, 'a-offscreen').text

рейтинг = driver.find_element(By.ID, 'acrPopover').get_attribute('title')



print("Заголовок:", title)

print("Цена:", price)

print("Рейтинг:", rating)



# Закрыть браузер

driver.quit()

4. Безголовый просмотр с Playwright 

Playwright обеспечивает высокую производительность для сайтов с большим количеством JavaScript, и он хорошо подходит для более сложных задач веб-скрапинга Amazon. 

Пример кода с Playwright: 

импорт asyncio 

from playwright.async_api import async_playwright



async def scrape_product():

асинхронно с async_playwright() как п:

браузер = await p.chromium.launch(headless=True)

страница = await браузер.новая_страница()



# Перейти на страницу товара на Amazon

await page.goto('https://www.amazon.com/dp/B098FKXT8L')



# Дождаться элементов и извлечь данные

title = await page.text_content('#productTitle')

цена = await page.text_content('.a-offscreen')

рейтинг = await page.get_attribute('#acrPopover', 'title')



print("Название:", title.strip())

print("Цена:", price.strip())

print("Рейтинг:", rating.strip())



await browser.close()



asyncio.run(scrape_product())

5. Парсинг на основе API с использованием Amazon Scraper API 

Для масштабного скрейпинга API для скрейпинга Amazon может значительно упростить этот процесс, взяв на себя меры по борьбе со скрейпингом. Эти API часто предоставляют структурированные ответы JSON и поддерживают различные типы страниц, включая детали продуктов, отзывы и результаты поиска, что помогает оптимизировать извлечение данных без необходимости использования сложной логики парсинга. 

Пример кода с использованием Amazon Scraper API: 

импортировать запросы 



# конечная точка API и параметры

api_url = 'https://api.your_amazon_scraper.com/product'

параметры = {

'api_key': 'ВАШ_API_КЛЮЧ',

'asin': 'B098FKXT8L',

'домен': 'com',

'разобрать': Истина

}



response = requests.get(api_url, params=params)

product_data = response.json()



print("Название:", product_data['title'])

print("Цена:", product_data['price'])

print("Рейтинг:", product_data['rating'])

Обработка товарных позиций 

При веб-скрейпинге Amazon доступ к отдельным страницам продуктов часто начинается со страниц категорий или результатов поиска. Списки продуктов, такие как те, что находятся на https://www.amazon.com/b?node=12097479011 Для накладных наушников, содержащих несколько товаров со ссылками на их страницы с подробной информацией. Сбор этих списков позволяет эффективно извлекать несколько URL-адресов продуктов. 

Пример: парсинг товарных объявлений 

Сначала импортируйте необходимые модули: 

Затем напишите функцию для извлечения ссылок на товары со страницы списка:

Обработка пагинации 

Объявления Amazon часто занимают несколько страниц. Для сбора данных со всех страниц скрейпер должен обрабатывать пагинацию. Кнопка “Далее” на каждой странице объявления ведет к дополнительным товарам и может быть найдена с помощью CSS-селектора a.s-pagination-next. 

Эта измененная функция извлекает URL-адреса продуктов с каждой страницы и рекурсивно переходит по кнопке “Далее” до тех пор, пока все страницы не будут разобраны. 

Экспорт данных в CSV 

После сбора данных их сохранение в структурированном формате, таком как CSV, упрощает анализ. Используя библиотеку pandas, вы можете эффективно преобразовать ваши данные в CSV-файл. 

Вот здесь пример о том, как сохранять данные в CSV после парсинга страниц Amazon:

В главной функции, объединять функции скрейпинга и экспорта:

Финальный сценарий 

Собирая всё вместе, вот полный скрипт, который собирает списки продуктов, переходит по страницам, получает подробную информацию о продукте и сохраняет её в CSV: 

импортировать запросы 

из bs4

из urllib.parse импорт urljoin

импорт pandas как pd


custom_headers = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15',

'Accept-Language': 'ru-RU,ru;q=0.9',

}



visited_urls = set()

def get_product_info(url):

ответ = requests.get(url, headers=custom_headers)

Если код состояния ответа не равен 200:

print(f"Ошибка при получении {url}")

вернуть None


суп = BeautifulSoup(response.text, "lxml")

product_info = {

"title": soup.select_one("#productTitle").get_text(strip=True),

"цена": soup.select_one("span.a-offscreen").get_text(strip=True) if soup.select_one("span.a-offscreen") else None,

"рейтинг": soup.select_one("#acrPopover")['title'].replace("out of 5 stars", "").strip() if soup.select_one("#acrPopover") else None,

"изображение": soup.select_one("#landingImage")['src'] if soup.select_one("#landingImage") else None,

"описание": soup.select_one("#productDescription").get_text(strip=True) if soup.select_one("#productDescription") else None,

"url": url

}

вернуть товар_инфо


def parse_listing(listing_url):

response = requests.get(listing_url, headers=custom_headers)

суп = BeautifulSoup(response.text, "lxml")


product_urls = [urljoin(listing_url, link.get("href")) for link in soup.select("[data-asin] h2 a")]

product_data = [get_product_info(url) for url in product_urls if url not in visited_urls]

visited_urls.update(product_urls)


next_page = soup.select_one('a.s-pagination-next')

если next_page:

next_page_url = urljoin(listing_url, next_page['href'])

product_data += parse_listing(next_page_url)


вернуть product_data


def main():

search_url = "https://www.amazon.com/s?k=bose&rh=n%3A12097479011"

все_товары = разобрать_список(url_поиска)

df = pd.DataFrame(all_products)

df.to_csv("amazon_headphones.csv", index=False)

print("Данные сохранены в amazon_headphones.csv")

если __name__ == "__main__":

основная()

Устранение распространенных проблем при парсинге Amazon 

Парсинг Amazon может быть сложным из-за частых изменений макета и механизмов защиты от парсинга. Вот несколько распространенных советов по устранению неполадок: 

  1. Обработка заблокированных запросовЕсли Amazon блокирует ваши запросы, попробуйте сменить IP-адреса или использовать прокси-сервис, такой как Nodemaven. Ротация прокси-серверов в сочетании с ротацией user-agent может помочь обойти обнаружение. 
  1. CAPTCHA и Верификация БраузераAmazon может показывать CAPTCHA или другие шаги верификации. Инструменты, такие как Selenium или Playwright, поддерживающие автоматизацию браузера, могут помочь обойти эти трудности. 
  1. Пропущенные данные: Иногда поля, такие как цена или рейтинг, могут отсутствовать. Реализуйте условные проверки, чтобы избежать ошибок при разборе этих значений. 
  1. Ошибки пагинацииЕсли ваш парсер останавливается на определенных страницах, проверьте структуру пагинации на этих страницах. Amazon может иметь другую структуру на определенных страницах. 
  1. Ограничение скорости и задержкиИзбегайте чрезмерных запросов за короткий промежуток времени. Вводите случайные задержки, используя `time.sleep()`, чтобы ваши запросы выглядели более похожими на человеческие. 

Использование Amazon Scraper API для упрощенного подхода 

Если вам требуется более надежное и масштабируемое решение, рассмотрите возможность использования API, предназначенного для парсинга данных Amazon, такого как Amazon Scraper API. Эти сервисы могут обрабатывать запросы, обходя большинство мер защиты от скрейпинга, и возвращать данные в структурированных форматах, таких как JSON. 

Amazon Scraper API 

импортировать запросы 

из pprint импорт pprint

api_url = "https://realtime.oxylabs.io/v1/queries"

payload = {

'source': 'amazon_search',

'бозе,

'start_page': 1,

'страницы': 5,

'разобрать': Истина,

'контекст': [{'ключ': 'category_id', 'значение': 12097479011}]

}

response = requests.post(api_url, auth=('USERNAME', 'PASSWORD'), json=payload)

pprint(response.json())

Лучшие практики для скрейпинга Amazon 

  1. Использовать проксиВысококачественные ротирующиеся прокси могут помочь избежать обнаружения и снизить вероятность блокировки IP-адресов. 
  1. Сменить User-AgentsСмена строк user-agent имитирует различные браузеры и делает запросы более естественными. 
  1. Ограничение частоты запросовДобавление случайных задержек между запросами помогает избежать ограничения скорости и блокировки IP-адресов. 
  1. Обработка динамического контентаИспользуйте такие инструменты, как Selenium или Playwright, для управления страницами с элементами, отрисованными с помощью JavaScript. 
  1. Уважайте Robots.txtВсегда проверяйте и следуйте файлу robots.txt Amazon, чтобы обеспечить соблюдение их правил скрейпинга. 

Правовые аспекты парсинга Amazon

Парсинг веб-сайта Amazon, как и любая другая деятельность по веб-парсингу, связана с важными юридическими и этическими соображениями. Хотя парсинг может предоставить ценную информацию для бизнеса, важно понимать потенциальные юридические риски и обязательства, чтобы избежать нарушения условий обслуживания Amazon или прав интеллектуальной собственности. Вот несколько ключевых моментов, которые следует учитывать: 

  1. Соблюдение условий обслуживанияУсловия обслуживания Amazon, как правило, запрещают автоматизированный сбор данных. Парсинг Amazon может нарушать эти условия, что может привести к блокировке вашего IP-адреса, приостановке действия вашей учетной записи Amazon или даже к юридическим действиям в серьезных случаях. Всегда проверяйте и соблюдайте условия обслуживания Amazon перед тем, как заниматься парсингом. 
  1. Интеллектуальная собственность и владение даннымиДанные, доступные на Amazon, включая описания продуктов, изображения и отзывы, часто защищены законами об интеллектуальной собственности. Повторное использование или распространение этих данных без разрешения может нарушить права на интеллектуальную собственность Amazon или первоначальных создателей контента. Убедитесь, что вы не используете данные способами, которые могут привести к проблемам с авторскими правами или товарными знаками. 
  1. Этичная и ответственная парсинг: Если вы решили продолжить парсинг, следуйте ответственным практикам, чтобы минимизировать нагрузку на сервер и избежать нарушения работы платформы Amazon. Это включает соблюдение ограничений скорости, введение задержек между запросами и ответственное использование прокси для предотвращения чрезмерных запросов с одного IP-адреса. 
  1. Альтернативные источники данных: Чтобы избежать потенциальных юридических проблем, рассмотрите возможность использования авторизованных служб данных Amazon или сторонних API, предназначенных для сбора данных электронной коммерции. Такие службы, как Amazon Product Advertising API, предоставляют авторизованный доступ к определенным типам данных о продуктах, снижая юридические риски и в то же время обеспечивая доступ к ценной информации. 
  1. Консультация юристаЕсли вы не уверены в законности ваших действий по скрейпингу или в том, как соблюдать правила Amazon, проконсультируйтесь с юридическими экспертами, знакомыми с законами о конфиденциальности данных, интеллектуальной собственности и технологиях. Это поможет гарантировать, что ваша практика сбора данных соответствует текущим правовым нормам и снизит риск случайного нарушения законодательства. 

Заключение

Обучение эффективному скрейпингу Amazon может открыть ценные возможности для бизнеса, маркетологов и аналитиков данных, предоставляя доступ к актуальным рыночным тенденциям, конкурентным ценам и предпочтениям клиентов. Однако из-за сложных механизмов защиты Amazon от скрейпинга, для достижения успеха требуются тщательное планирование, надежные инструменты и соблюдение лучших практик, включая использование прокси-серверов, ротацию User-Agent и API-решения. Всегда учитывайте юридические и этические аспекты перед началом скрейпинга и, по возможности, изучайте авторизованные источники данных. Следуя этим рекомендациям, извлечение данных из Amazon может стать мощным инструментом, соблюдая при этом законодательство и минимизируя риски. 

Часто задаваемые вопросы о настройке прокси в Telegram

Каков самый надежный способ парсить Amazon, не будучи заблокированным?

Лучший подход — комбинировать прокси с ротацией заголовков и механизмами задержки, чтобы снизить риск блокировки. Использование API, специально разработанного для скрейпинга Amazon, также является масштабируемым решением для обеспечения стабильного извлечения данных. 

Сбор данных Amazon может иметь юридические последствия, если он нарушает Условия обслуживания Amazon или интеллектуальные права. Рекомендуется ознакомиться с политикой Amazon или проконсультироваться с юристом, чтобы убедиться в соответствии практик сбора данных. 

Такие инструменты, как Selenium и Playwright, полезны для парсинга контента, отображаемого с помощью JavaScript, на страницах Amazon, позволяя извлекать динамические элементы, такие как отзывы или детали продукта, загруженные через JavaScript. 

Используйте цикл для обнаружения и перехода по кнопке “Далее” на страницах списка Amazon. Этот подход позволяет скрипту переходить по нескольким страницам и собирать полные данные по всем объявлениям. 

Да, прокси помогают предотвращать блокировку IP-адресов и повышают анонимность. Ротирующиеся прокси особенно эффективны для масштабного скрапинга, поскольку они помогают имитировать запросы от нескольких пользователей, снижая вероятность обнаружения. 

Лучший подход — комбинировать прокси с ротацией заголовков и механизмами задержки, чтобы снизить риск блокировки. Использование API, специально разработанного для скрейпинга Amazon, также является масштабируемым решением для обеспечения стабильного извлечения данных. 

Сбор данных Amazon может иметь юридические последствия, если он нарушает Условия обслуживания Amazon или интеллектуальные права. Рекомендуется ознакомиться с политикой Amazon или проконсультироваться с юристом, чтобы убедиться в соответствии практик сбора данных. 

Такие инструменты, как Selenium и Playwright, полезны для парсинга контента, отображаемого с помощью JavaScript, на страницах Amazon, позволяя извлекать динамические элементы, такие как отзывы или детали продукта, загруженные через JavaScript. 

Используйте цикл для обнаружения и перехода по кнопке “Далее” на страницах списка Amazon. Этот подход позволяет скрипту переходить по нескольким страницам и собирать полные данные по всем объявлениям. 

Да, прокси помогают предотвращать блокировку IP-адресов и повышают анонимность. Ротирующиеся прокси особенно эффективны для масштабного скрапинга, поскольку они помогают имитировать запросы от нескольких пользователей, снижая вероятность обнаружения. 

Вам также могут понравиться эти статьи

Этот сайт использует печенье чтобы улучшить ваш опыт. Продолжая, вы соглашаетесь на использование файлов cookie.