Code Monkey home page Code Monkey logo

pydata_dz7's Introduction

Сбор и разметка данных (семинары)

Урок 7. Selenium в Python

Задание

  1. Выберите веб-сайт, который содержит информацию, представляющую интерес для извлечения данных. Это может быть новостной сайт, платформа для электронной коммерции или любой другой сайт, который позволяет осуществлять скрейпинг (убедитесь в соблюдении условий обслуживания сайта).
  2. Используя Selenium, напишите сценарий для автоматизации процесса перехода на нужную страницу сайта.
  3. Определите элементы HTML, содержащие информацию, которую вы хотите извлечь (например, заголовки статей, названия продуктов, цены и т.д.).
  4. Используйте BeautifulSoup для парсинга содержимого HTML и извлечения нужной информации из идентифицированных элементов.
  5. Обработайте любые ошибки или исключения, которые могут возникнуть в процессе скрейпинга.
  6. Протестируйте свой скрипт на различных сценариях, чтобы убедиться, что он точно извлекает нужные данные.
  7. Предоставьте ваш Python-скрипт вместе с кратким отчетом (не более 1 страницы), который включает следующее:
    • URL сайта. Укажите URL сайта, который вы выбрали для анализа.
    • Описание. Предоставьте краткое описание информации, которую вы хотели извлечь из сайта.
    • Подход. Объясните подход, который вы использовали для навигации по сайту, определения соответствующих элементов и извлечения нужных данных.
    • Трудности. Опишите все проблемы и препятствия, с которыми вы столкнулись в ходе реализации проекта, и как вы их преодолели.
    • Результаты. Включите образец извлеченных данных в выбранном вами структурированном формате (например, CSV или JSON).

Примечание: Обязательно соблюдайте условия обслуживания сайта и избегайте чрезмерного скрейпинга, который может нарушить нормальную работу сайта.

Решение

В качестве цели для скрейпинга выберем сайт электронных книг litres.ru

Для поиска - выберем все книги, где автором является Булгаков, или те книги, которые написаны о нем самом.

Результатом работы долен быть CSV файл со следующей информацией о книге:

  • Автор
  • Название
  • Формат (текст или аудио)
  • Цена
  • Рейтинг популярности
  • Url книги в магазине

Для реализации задачи введем в строку поиска на первой старнице сайта слово Булгаков

После этого сайт будет генерировать список книг, которые попадают под нашу строку поиска. Причем вывод информации будет дозированным - поэтому нужно будет предусмотреть скроллинг страницы вниз, а так же - отслеживать кнопку "Ещё больше результатов поиска"".

После получения страницы со всеми результатами - мы сможем получить все ссылки на найденные книги.

Оформим все ссылки в список и отправим каждую на парсинг каждой страницы книги, с помощью BeautifulSoup. Тут мы получим интересующие нас данные.

После этого - запишем всю найденную информацию в CSV файл.

Трудности вызвало нахождение подходящего сайта для скрапинга (сайты магазинов OZON и Whildberries имеют защиту от скрапинга). Так же трудности возникли при скроллинге страницы (получилось не сразу).

Решение находится в файле main.py

Результат работы:

Вывод программы:

C:\Work\python\Data\PyData_dz7\.venv\Scripts\python.exe C:\Work\python\Data\PyData_dz7\main.py 
Начало работы
Найдено 627 ссылок
Обработка найденных книг: 100%|██████████| 627/627 [18:04<00:00,  1.73s/it]
Работа завершена.

Process finished with exit code 0

Файл с полученными данными: litres.csv

Часть CSV файла:

Author,Name,Format,Price,Rating,Url
Михаил Булгаков,Морфий и другие рассказы,аудиокнига,159.0,61.0,https://www.litres.ru/audiobook/mihail-bulgakov/morfiy-i-drugie-rasskazy-178526/
Анатолий Абрашкин; Галина Макарова,Булгаков и дьявол. Опасные тайны «Мастера и Маргариты»,аудиокнига,389.0,2.0,https://www.litres.ru/audiobook/anatoliy-abrashkin/bulgakov-i-dyavol-opasnye-tayny-mastera-i-margarity-69392836/
Анатолий Абрашкин; Галина Макарова,Булгаков и дьявол. Опасные тайны «Мастера и Маргариты»,текст,389.0,3.8,https://www.litres.ru/book/anatoliy-abrashkin/bulgakov-i-dyavol-opasnye-tayny-mastera-i-margarity-67259420/
Михаил Булгаков,Мастер и Маргарита,аудиокнига,344.0,368.0,https://www.litres.ru/audiobook/mihail-bulgakov/master-i-margarita-282202/
АНОНИМУС,Тайный дневник Михаила Булгакова,аудиокнига,399.0,165.0,https://www.litres.ru/audiobook/anonimys/taynyy-dnevnik-mihaila-bulgakova-67432011/
Михаил Афанасьевич Булгаков,Белая гвардия,аудиокнига,179.0,14.0,https://www.litres.ru/audiobook/mihail-afanasevich-bulgakov/belaya-gvardiya-66596774/
Михаил Булгаков,Мастер и Маргарита,текст,129.0,4.6,https://www.litres.ru/book/mihail-bulgakov/master-i-margarita-129095/
АНОНИМУС,Тайный дневник Михаила Булгакова,текст,279.0,3.8,https://www.litres.ru/book/anonimys/taynyy-dnevnik-mihaila-bulgakova-67429485/
Михаил Булгаков,Мастер и Маргарита (Аудиоспектакль),аудиокнига,339.0,82.0,https://www.litres.ru/audiobook/mihail-bulgakov/master-i-margarita-audiospektakl-67552434/

pydata_dz7's People

Contributors

zep314 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.