Skip to content

SemenovY/scrapy_parser_pep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scrapy Parser Python Enhancement Proposals (PEP)

Python Scrapy XPath CSS Pytest


Парсинг документов PEP

Асинхронный парсер документов PEP на базе фреймворка Scrapy, собирающий данные о PEP с сайта https://www.python.org/. С каждой страницы PEP парсер собирает номер, название, статус и сохраняет два файла в формате .csv в папке results/....

  • В первый файл сохраняет список всех PEP: номер, название и статус. Во второй файл подсчитывает общее количество каждого статуса и сумму всех статусов. В последней строке файла в колонке «Статус» общее количество всех документов.
  • Метод паука parse() собирает ссылки на документы PEP. Метод parse_pep() парсит страницы с документами и формирует Items. При парсинге применены CSS- и XPath-селекторы. Для создания Items описан класс PepParseItem.
  • Файлы со списком PEP именованы по маске pep_ДатаВремя.csv. Файлы со сводкой по статусам именованы по маске status_summary_ДатаВремя.csv.

Технологии проекта

  • Python — высокоуровневый язык программирования.
  • Scrapy — популярный фреймворк для парсинга веб сайтов. Особенности:
    • Многопоточность
    • Веб-краулер для перехода от ссылки к ссылке
    • Извлечение данных
    • Проверка данных
    • Сохранение в другой формат/базу данных
  • XPath — язык запросов к элементам XML-документа.
  • CSS - Cascading Style Sheets, каскадные таблицы стилей.
  • Pytest — среда тестирования, основанная на Python.

Инструкция по развёртыванию проекта

Клонировать репозиторий и перейти в него в командной строке:

git clone git@github.com:SemenovY/scrapy_parser_pep

Создать и активировать виртуальное окружение:

python3 -m venv env

source env/bin/activate

Установить зависимости из файла requirements.txt:

python3 -m pip install --upgrade pip

pip install -r requirements.txt

Запуск парсера

scrapy crawl pep

Зависимости:

  • Python 3.9
  • Scrapy

Над проектом работал:

  • Семёнов Юрий | GitHub: SemenovY | Python developer.

Free Software, Not for commercial use!

=^..^=______/

About

Парсер документов PEP на базе фреймворка Scrapy, собирающий данные о PEP с сайта https://www.python.org/

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages