CoderCastrov logo
CoderCastrov
Питон

Как парсить отзывы на Amazon с помощью Python

Как парсить отзывы на Amazon с помощью Python
просмотров
3 мин чтение
#Питон

Создайте скрипт для парсинга отзывов на Amazon с использованием библиотек Playwright и Selectolax для Python

В этой статье мы покажем вам, как создать веб-парсер, который извлекает отзывы с страницы товара на Amazon с использованием Python. Для взаимодействия с веб-страницами мы используем библиотеку Playwright, для парсинга HTML-контента - библиотеку Selectolax, а для ведения журнала - библиотеку Loguru.

Важно отметить, что Amazon постоянно пытается усложнить задачу создания ботов для парсинга их страниц с продуктами и отзывами. В настоящее время (в июле 2023 года) кажется, что возможно только парсить эти страницы с помощью имитированного веб-браузера. Вот почему мы используем Playwright для Python.

Установка необходимых библиотек Python

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

pip install playwright
pip install selectolax
pip install loguru

Кроме того, необходимо выполнить следующую команду, чтобы убедиться, что все зависимости для библиотеки Playwright также установлены:

playwright install

Обзор скрипта для парсинга Amazon

Python-скрипт организован в виде главной функции и класса с названием Reviews. Вот пошаговое описание того, что делает скрипт:

Импорт библиотек: Скрипт начинается с импорта необходимых библиотек и модулей. Это включает sync_playwright из библиотеки Playwright, HTMLParser из библиотеки Selectolax, dataclass из библиотеки dataclasses, time и csv из стандартной библиотеки Python, а также logger из библиотеки Loguru.

Определение класса данных: Определяется класс данных с названием Item, в котором есть пять полей: asin, product, title, rating и body. Этот класс используется для хранения информации о каждом отзыве.

Определение класса Reviews: Класс Reviews имеет несколько методов для парсинга и обработки данных.

  • __init__(): Этот метод инициализирует объект Reviews. Он запускает экземпляр Playwright, запускает браузер Chromium и настраивает парсер HTML.
  • __enter__() и __exit__(): Эти методы используются для того, чтобы сделать класс Reviews менеджером контекста. Это означает, что вы можете использовать оператор with для управления ресурсами. Когда блок with начинается, вызывается метод __enter__(); когда блок with завершается, вызывается метод __exit__(). В данном случае метод __exit__() закрывает браузер и останавливает экземпляр Playwright.
  • __get_html(): Этот закрытый метод создает URL страницы с отзывами Amazon для заданного продукта (идентифицируемого по его ASIN) и номера страницы, переходит на эту страницу и получает ее HTML-контент. Он проверяет, есть ли на странице отзывы, и возвращает разобранный HTML, если они есть, или False в противном случае.
  • __parse_html(): Этот закрытый метод разбирает заданную HTML-страницу, извлекает название продукта и отзывы, и возвращает список объектов Item, представляющих отзывы.
  • read_csv(): Этот метод читает CSV-файл и возвращает список ASIN.
  • to_csv(): Этот метод записывает список отзывов в CSV-файл.
  • run_single(): Этот метод получает все доступные отзывы для одного ASIN.
  • run_multiple(): Этот метод получает все доступные отзывы для списка ASIN.
  • __run(): Этот закрытый метод является вспомогательной функцией для методов run_single() и run_multiple(). Он получает и разбирает все страницы с отзывами для заданного ASIN.

Определение главной функции: Функция main() - это место, где начинается выполнение скрипта. Она создает объект Reviews для парсинга отзывов для одного ASIN и списка ASIN, прочитанного из CSV-файла. Затем отзывы записываются в CSV-файлы.

Запуск скрипта: Скрипт запускается, если он является главным модулем. Это определяется проверкой значения __name__, равно ли оно '__main__'. Если это так, вызывается функция main().

Скрипт для парсинга отзывов на Amazon

Запуск скрипта для парсинга отзывов на Amazon

Для запуска этого скрипта на Python вам потребуется предоставить ему ASIN (Amazon Standard Identification Number). Вы можете сделать это разными способами.

Для функции run_single() в функции main() мы задали ASIN напрямую. Вы можете заменить его на любой ASIN на ваш выбор. Функция run_multiple(), с другой стороны, требует наличия CSV-файла с названием "products.csv". В этом CSV-файле должны быть указаны ASIN на отдельных строках.

После создания такого CSV-файла вы можете запустить скрипт следующим образом:

python reviews.py

Ссылки

“Как парсить отзывы на товары на Amazon с помощью Python” YouTube-видео Джона Уотсона Руни

“Браузеры теперь необходимы? Парсинг Amazon в 2023 году” YouTube-видео Джона Уотсона Руни

“Playwright для Python” документация

“Selectolax” документация

“Loguru — простая библиотека логирования для Python” документация