Учебный проект для практики создания асинхронных парсеров, работы во фреймворке Scrapy и с библиотекой SQLAlchemy.
Парсится тестовый сайт по адресу: http://51.250.32.185/
В проекте реализована работа двух пауков:
- yatube - осуществляет поиск на всех страницах сайта постов, написанных в понедельник, создает базу данных sqlite и заполняет её информацией из найденных постов.
- group - осуществляет поиск на всех страницах сайта ссылок на существующие группы, переходит на страницы групп и выводит в файл .csv информацию о группе и количество постов в ней.
- Склонируйте репозиторий:
git clone [email protected]:AbbadonAA/yatube_parsing.git
- Активируйте venv и установите зависимости:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Проект готов к запуску.
- Запуск паука yatube:
scrapy crawl yatube
Будет создана база данных sqlite.db и заполнена полученными данными.
- Запуск паука group:
scrapy crawl group -O <имя_файла>.csv
Будет создан файл <имя_файла>.csv с полученными данными.
- Альтернативный запуск паука yatube для сбора данных обо всех постах:
- В файле yatube.py необходимо закомментировать строки:
custom_settings = { 'ITEM_PIPELINES': { 'yatube_parsing.pipelines.MondayPipeline': 300 } }
- Сохраните файл;
- Выполните команду:
scrapy crawl yatube -O <имя_файла>.csv
Будет создан файл <имя_файла>.csv с данными из всех постов на сайте.
Pushkarev Anton