CoderCastrov logo
CoderCastrov
Питон

Как парсить данные о продуктах и ценах на Amazon с помощью Python

Как парсить данные о продуктах и ценах на Amazon с помощью Python
просмотров
2 мин чтение
#Питон

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

Вот простой скрипт, который делает это. Мы будем использовать BeautifulSoup, чтобы извлечь информацию о продукте и ценах на Amazon.

Для начала, вот код, который нам нужен, чтобы получить страницу на Amazon и настроить BeautifulSoup для использования CSS-селекторов для запроса страницы на наличие значимых данных.

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requestsheaders = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9'}
url = 'https://www.amazon.com/Victrola-Bluetooth-Suitcase-Turntable-Turquoise/dp/B00UMVVUOC?pf_rd_p=f62b9627-0b3f-409a-81f2-c4d5e3c556d9&pd_rd_wg=oc1cu&pf_rd_r=FYVCAGRDA22E1G9T400R&ref_=pd_gw_unk&pd_rd_w=oaPrK&pd_rd_r=c678cac3-201d-4cc6-a88f-0a453f156cd5'response=requests.get(url,headers=headers)
soup=BeautifulSoup(response.content,'lxml')

Мы также передаем заголовки пользовательского агента, чтобы симулировать вызов браузера, чтобы не быть заблокированными.

Теперь давайте проанализируем страницу Amazon для этого проигрывателя.

И когда мы проверяем страницу, мы видим, что каждый из элементов HTML находится в теге с идентификатором "product title".

Для нас это не может быть проще.

Этот код должен быть способен получить название.

print('Название: ' soup.select('#productTitle')[0].get_text().strip())

Собирая все вместе, код будет выглядеть так.

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requestsheaders = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9'}
url = 'https://www.amazon.com/Victrola-Bluetooth-Suitcase-Turntable-Turquoise/dp/B00UMVVUOC?pf_rd_p=f62b9627-0b3f-409a-81f2-c4d5e3c556d9&pd_rd_wg=oc1cu&pf_rd_r=FYVCAGRDA22E1G9T400R&ref_=pd_gw_unk&pd_rd_w=oaPrK&pd_rd_r=c678cac3-201d-4cc6-a88f-0a453f156cd5'response=requests.get(url,headers=headers)
soup=BeautifulSoup(response.content,'lxml')#print(soup.select('.a-carousel-card')[0].get_text())try:	print('Название: ' soup.select('#productTitle')[0].get_text().strip())
	print('Исходная цена: ' soup.select('.priceBlockStrikePriceString')[0].get_text().strip())
	print('Цена со скидкой: ' soup.select('#priceblock_ourprice')[0].get_text().strip())
	print('Доставка: ' soup.select('#ourprice_shippingmessage .a-color-secondary')[0].get_text().strip())
	print('Характеристики следующие:')
	for item in soup.select('#feature-bullets li'):
		print('\t' item.select('.a-list-item')[0].get_text().strip())
except Exception as e:
	raise e
	print('')

Вы увидите, что для характеристик мы создали дополнительный цикл. Это потому, что мы обнаружили, что характеристики представлены маркерами внутри тега с идентификатором "feature-bullets". И когда вы запустите его.

  • С миллионами высокоскоростных вращающихся прокси, расположенных по всему миру
  • С нашей автоматической сменой IP
  • С нашей автоматической сменой User-Agent-String (которая имитирует запросы от разных действительных веб-браузеров и версий веб-браузеров)
  • С нашей автоматической технологией решения CAPTCHA

Сотни наших клиентов успешно решили проблему блокировки IP с помощью простого API.

Простое API может получить все это, как показано ниже на любом языке программирования.

curl "http://api.proxiesapi.com/?key=API_KEY&url=https://example.com"

У нас есть работающее предложение 1000 бесплатных API-вызовов. Зарегистрируйтесь и получите свой бесплатный API-ключ здесь.

Блог был изначально опубликован здесь: https://www.proxiesapi.com/blog/how-to-scrape-amazon-product-data-and-pricing-usin.html.php