CoderCastrov logo
CoderCastrov
Парсер

Парсинг веб-страниц с помощью Python...👨‍💻

Парсинг веб-страниц с помощью Python...👨‍💻
просмотров
3 мин чтение
#Парсер

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

Определение и использование:

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

Использование:

  • Поисковые боты, которые обходят сайт, анализируют его содержимое и затем ранжируют его.
  • Сайты сравнения цен, использующие ботов для автоматического получения цен и описаний товаров с сайтов продавцов.
  • Компании по маркетинговым исследованиям, использующие парсеры для извлечения данных из форумов и социальных медиа (например, для анализа настроений).

Библиотеки Python, используемые для парсинга веб-страниц:

  • Selenium: Selenium - это библиотека для тестирования веб-приложений. Она используется для автоматизации действий в браузере.
  • BeautifulSoup: Beautiful Soup - это пакет Python для разбора HTML- и XML-документов. Он создает деревья разбора, которые удобно использовать для извлечения данных.
  • Pandas: Pandas - это библиотека, используемая для манипулирования и анализа данных. Она используется для извлечения данных и их сохранения в нужном формате.
  • Requests: Модуль requests позволяет отправлять HTTP-запросы с использованием Python. HTTP-запрос возвращает объект Response с данными ответа (содержимое, кодировку, статус и т. д.).

Реализация

Давайте реализуем простой веб-парсер на Python с использованием указанных библиотек. Установите все указанные библиотеки с помощью pip.

Мы будем использовать сайт электронной коммерции для получения данных о продукте.

Импорт зависимостей:

import pandas as pd
from selenium import webdriver
from bs4 import BeautifulSoup

Настройте Chrome WebDriver для использования браузера Chrome. Установите путь к chromedriver.exe, который можно скачать здесь.

Теперь мы перейдем на веб-сайт, с которого мы будем парсить данные. В качестве примера здесь мы используем Bewakoof (онлайн-магазин) для получения данных о цене рубашек.

В вашем блокноте создайте 3 пустых списка, как показано ниже.

product_names = []
actual_prices = []
discounted_prices = []

Парсинг данных

Скопируйте URL веб-страницы и вставьте его в параметры функции get(). Здесь driver.get() получает весь исходный код веб-страницы, который вы можете увидеть с помощью инструмента "Инспектор".

driver = webdriver.Chrome('path/to/chromedriver.exe')
driver.get('https://www.bewakoof.com/men-t-shirts')
content = driver.page_source
soup = BeautifulSoup(content)

Теперь у нас есть весь исходный код веб-страницы в виде soup. Теперь мы будем парсить данные, которые нам нужны (в данном случае, данные о цене и названии продукта).

Выполните эту операцию, которая получит все данные и сохранит их в вышеуказанные пустые списки.

for product in soup.findAll('div', attrs={'class':'product-card'}):
    name = product.find('h3', attrs={'class':'product-title'}).text
    price = product.find('span', attrs={'class':'product-price'}).text
    discount = product.find('span', attrs={'class':'product-discountedPrice'}).text
    
    product_names.append(name)
    actual_prices.append(price)
    discounted_prices.append(discount)

Затем преобразуем списки в DataFrame с помощью pandas.

data = pd.DataFrame({'Product Name': product_names, 'Actual Price': actual_prices, 'Discounted Price': discounted_prices})

Ура! Мы получили все цены на актуальные и скидочные продукты на веб-странице. Теперь поместим эти данные в CSV-файл для сохранения и использования в аналитических целях.

Выполните эту операцию для сохранения в CSV-файл.

data.to_csv('scraped_products.csv', index=False)
scraped_products.csv

Заключение

Вот как мы можем собирать данные с любой веб-страницы, используя Selenium и BeautifulSoup. Это очень просто. Практикуйтесь. Узнавайте больше..!!

Ссылка на GitHub:

https://github.com/AshishTrada/data-science/tree/main/web-scraping