Парсинг на практике со Scrapy для Data Science
• Установка и настройка
pip install scrapy
• Основы веб-скрепинга
Чтобы проиллюстрировать фундаментальную концепцию Scrapy, давайте создадим простой веб-скрепер, извлекающий данные с сайта. В этом примере мы будем извлекать цитаты с сайта “http://quotes.toscrape.com”. Изображение 1.
✔ Мы определяем класс с именем “QuotesSpider”, который наследуется от класса Scrapy Spider. Мы указываем URL-адреса, с которых парсер начинает собирать данные. Метод “parse” является точкой входа парсера, в нем мы извлекаем нужные данные (цитаты и авторов) с помощью CSS-селекторов. Для возврата извлеченных данных мы используем оператор “yield”.
• Продвинутые техники скрапирования
Рассмотрим две важные техники парсинга: работу с пагинацией на страницах и извлечение данных из страниц всех собранных страниц. Изображение 2.
✔ Мы создаем класс под названием “ProductSpider” для сбора информации о товарах с сайта электронной коммерции. В методе “parse” мы извлекаем название продукта и его цену со страниц. Кроме того, мы переходим по ссылкам на страницы с подробной информацией с помощью метода “response.follow” и определяем отдельный метод “parse product” для разбора страниц с подробной информацией об отдельных товарах. В методе “parse_product” мы извлекаем дополнительные сведения, например, описание товара.
• Обработка входа в систему и аутентификации
Scrapy предлагает функции для обработки сценариев входа в систему и аутентификации, что позволяет собирать данные из закрытых областей сайта. Пример обработки входа в систему с помощью FormRequest: Изображение 3.
✔ Мы создаем класс с именем “LoginSpider” для обработки процесса входа в систему. В методе “parse” мы извлекаем данные формы входа в систему, включая CSRF-токен. Затем мы отправляем форму входа в систему с помощью FormRequest, передавая данные формы и функцию обратного вызова “after_login” для обработки ответа. В методе “after_login” можно выполнять дальнейшие операции Парсинга на аутентифицированных страницах.