CoderCastrov logo
CoderCastrov
Парсер

Использование scrapy shell часть 2

Использование scrapy shell часть 2
просмотров
2 мин чтение
#Парсер

Привет, в этом уроке мы будем использовать scrapy shell для парсинга.

В любом случае, перед этим мы создадим приложение из проекта:

Установка Scrapy - Часть 1

В этом уроке мы установим Scrapy с нуля

sulaemanr46.medium.com

В этом уроке мы будем парсить данные с веб-сайта.

Jual - Elektronik, Harga Murah - JakartaNotebook.com

Одной из проблем, с которой мы часто сталкиваемся при покупке электроники, является поиск места для онлайн-шопинга...

www.jakartanotebook.com

Цель - получить данные о названии, URL, цене и изображении из списка продуктов.

Откройте терминал.

scrapy shell

fetch('https://www.jakartanotebook.com/electronic')

При инспектировании элемента мы должны найти шаблон цикла для отображения продуктов.

Мы нашли класс с названием

<div class="product-list"> </div>

Создайте переменную для списка продуктов

products = response.css('div.product-list')

Для получения названия продукта "03CACTUS Ultrasonic Air Humidifier Aromatherapy Oil Diffuser Desain Unik Bentuk Kaktus — H319 — Transparent"

в строке 9 (

<a href="https://www.jakartanotebook.com/03cactus-ultrasonic-air-humidifier-aromatherapy-oil-diffuser-desain-unik-bentuk-kaktus-h319-transparent" title="03CACTUS Ultrasonic Air Humidifier Aromatherapy Oil Diffuser Desain Unik Bentuk Kaktus — H319 — Transparent" class="product-list__title">03CACTUS Ultrasonic Air Humidifier Aromatherapy Oil Diffuser Desain Unik Bentuk Kaktus — H319 — Transparent</a>

)

title = products.css('a.product-list__title::text').get()

Для получения URL

url = products.css('a.product-list__title').attrib['href']

Для получения цены "Rp. 109.300"

мы нашли в строке 40

" <span class="product-list__price">Rp. 109.300</span>"

products.css('span.product-list__price::text').get()

Для удаления RP

price = products.css('span.product-list__price::text').get().replace('Rp.','')

Для получения URL изображения в строке 4

<div class="product-list__img"> <a href="https://www.jakartanotebook.com/03cactus-ultrasonic-air-humidifier-aromatherapy-oil-diffuser-desain-unik-bentuk-kaktus-h319-transparent" title="03CACTUS Ultrasonic Air Humidifier Aromatherapy Oil Diffuser Desain Unik Bentuk Kaktus — H319 — Transparent">``<img src="https://www.jakartanotebook.com/images/products/104/1020/40919/34/279/3life-ultrasonic-air-humidifier-desain-unik-bentuk-kaktus-transparent-1.jpg" alt="Jual — Elektronik — 03CACTUS Ultrasonic Air Humidifier Aromatherapy Oil Diffuser Desain Unik Bentuk Kaktus — H319 — Transparent">``</a> <div class="product-list__discount">22%</div> </div>

Для получения значения src изображения мы можем использовать команду

img = products.css('div.product-list__img img::attr(src)').get()

Урок по использованию scrapy shell завершен, в следующем уроке мы получим все данные и экспортируем их в формате CSV.

Увидимся в следующем уроке.

Парсинг данных с помощью Scrapy, часть 3

В предыдущем уроке мы использовали scrapy shell

sulaemanr46.medium.com