Как стать автором
Обновить

Форк Newspaper4k продолжает развитие библиотеки Newspaper3k

Время на прочтение3 мин
Количество просмотров1.7K
Библиотека Newspaper3k для Python 3 предназначена для скрейпинга и автоматического парсинга новостных статей. С 2018 года проект не обновляется. Разработчик Андрей Параскив представил проект-форк Newspaper4k, в рамках которого он планирует закрывать баги и продолжать улучшать работу библиотеки.

В 2013 году Лукас Оу-Ян [Lucas Ou-Yang] опубликовал Newspaper, библиотеку для Python 2. Как писал Оу-Ян, проект был вдохновлён requests, уже тогда популярным компонентом Python, и lxml, библиотекой Python для обработки XML и HTML. Как указывал автор, заметные объёмы кода парсера он заимствовал из python-goose

В 2014 году Лукас начинает работу над библиотекой Newspaper3k. Это схожий с newspaper проект, но для Python 3.

Newspaper предназначена для парсинга статей с новостных сайтов. Все данные Newspaper обрабатывает в Юникоде и поддерживает 38 языков, включая русский. В библиотеку встроены автоматические парсеры с механизмами естественной обработки языка. Кстати, поэтому этот проект часто рекомендуют с припиской «искусственный интеллект». Основная задача библиотеки — извлечь релевантные данные (заголовок, автор, тело статьи, изображения, тэги, краткие пересказы и прочее), убрав ненужные элементы и тексты-заглушки, которые не несут полезной информации.

По качеству работы Newspaper и Newspaper3k сравнивали с сервисом социальных закладок Instapaper. Хотя Оу-Ян поделился подробной документацией, библиотека доросла до того, что к ней писали сторонние руководства. Некоторые из них остались на GeeksforGeeks и ScrapeOps: это инструкции по скрейпингу с помощью Newspaper3k.

Какое-то время Лукас развивал две ветки, но со временем забросил вариант для Python 2. С декабря 2014 года Newspaper не обновляется, вариант для Python 2 не поддерживается, и в репозитории github.com/codelucas/newspaper в мастере лежит библиотека Newspaper3k со ссылкой на ветку с Newspaper.

Ещё через четыре года Оу-Ян забросил проект полностью. Последняя версия Newspaper3k 0.2.8 вышла в сентябре 2018. Тем не менее запрос на инструмент не исчез. Иногда встречаются обсуждения с поиском альтернативы Newspaper3k.

На прошлой неделе Андрей Параскив [Andrei Paraschiv] сообщил, что форкнул библиотеку Newspaper3k в новый проект Newspaper4k. Параскив импортировал тикеты из раздела Issues оригинала и начал работу.

Отсчёт версий Newspaper4k Андрей начал с 0.9.0. Как он сообщает, первые два новых релиза (0.9.0 и 0.9.1) содержали в основном исправления багов и обновления проекта для работы с Python 3.6. Уже в версии 0.9.2 начались крупные изменения механизма парсинга документов.

В версии 0.9.3 новый мейнтейнер не только полностью переработал процесс парсинга новостей, но и добавил более 40 новых языков. Сейчас перечисление поддерживаемых языков вышло за 80 штук и уже не умещается на странице описания проекта, поэтому выведено в отдельный файл. Как утверждает Параскив, после изменений добавлять поддержку новых языков проще.

Дополнительно Андрей собрал два датасета для оценки качества парсинга: один со Scrapinghub, а другой собственный — это набор данных с 200 самых популярных сайтов. Последний датасет выложен в отдельном репозитории. Приводится сравнение результатов эффективности парсинга; заметно, что точность повысилась.

Также среди конкретных улучшений версии 0.9.3 — поддержка парсинга результатов Google News с поиском по ключевым словам, теме, стране и прочим параметрам. Параскив заявляет, что в сравнении с 0.2.8 достигнута стабильная работа многопоточного получения новостей.

Как и Newspaper3k, библиотека Newspaper4k распространяется под условиями лицензии MIT.

github.com/AndyTheFactory/newspaper4k
Теги:
Хабы:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Другие новости

Истории

Работа

Data Scientist
63 вакансии

Ближайшие события