Новости-Please-это простой в использовании новости, который извлекает структурированную информацию практически из любого новостей. Он может рекурсивно следить за внутренними гиперссылками и читать RSS -каналы, чтобы получить как самые последние, так и старые архивированные статьи. Вам нужно только предоставить корневой URL на веб -сайте новостей, чтобы ползти его полностью. Новости сочетают в себе силу нескольких современных библиотек и инструментов, таких как скрара, газета и читаемость.
Новости составляет также имеет библиотечный режим, который позволяет разработчикам Python использовать функцию ползания и извлечения в своей собственной программе. Более того, новостные соревнования позволяют удобно ползти и извлекать статьи из (очень) большого архива новостей на commoncrawl.org.
Если вы хотите внести свой вклад в новости, пожалуйста, сначала прочитайте здесь.
23.03.2021: Если вы заинтересованы в классификации настроений в новостных статьях, ознакомьтесь с нашим крупномасштабным набором данных для классификации целевых настроений. Мы также публикуем простую в использовании нейронную модель, которая достигает современной производительности. Посетите проект здесь.
01.06.2018: Если вы заинтересованы в извлечении событий из новостей, вы также можете проверить наш новый проект, Giveme5w1h - инструмент, который извлекает фразы, отвечающие на журналистские пять w и один H вопросы, чтобы описать главное событие статьи, т.е., который сделал то, что, когда, где, почему и как.
Новости-PLEASE извлекает следующие атрибуты из новостных статей. Файл JSON примеры, извлеченный в соответствии с новостями-Please, можно найти здесь.
News-Pleas поддерживает три основных варианта использования, которые более подробно объясняются в следующем.
python3 -m newsplease.examples.commoncrawl Это очень легко, мы обещаем!
Новости-это работает на Python 3.8+.
$ pip install news-pleaseВы можете получить доступ к основной функциональности новостей, то есть извлечение полуструктурированной информации из одной или нескольких новостных статей в вашем собственном коде, используя новости в режиме библиотеки. Если вы хотите использовать полную извлечение веб-сайта News-Pleame (учитывая только корневой URL) или режим непрерывного ползания (с использованием RSS), вам нужно использовать режим CLI, который описан позже.
from newsplease import NewsPlease
article = NewsPlease . from_url ( 'https://www.nytimes.com/2017/02/23/us/politics/cpac-stephen-bannon-reince-priebus.html?hp' )
print ( article . title )Образец извлеченной статьи можно найти здесь (как файл JSON).
Если вы хотите запустить несколько статей одновременно, при желании с любым дополнительным параметром, взятым по запросу.зор.
NewsPlease . from_urls ([ url1 , url2 , ...], request_args = { "timeout" : 6 })или если у вас есть файл, содержащий все URL -адреса (каждая строка, содержащая один URL)
NewsPlease . from_file ( path )Или, если у вас есть необработанные данные HTML (вы также можете предоставить исходный URL для повышения точности извлечения даты публикации)
NewsPlease . from_html ( html , url = None )Или, если у вас есть файл WARC (также ознакомьтесь с нашим рабочим процессом Commoncrawl, который предоставляет удобные методы для фильтрации архива Commoncraw
NewsPlease . from_warc ( warc_record )В библиотечном режиме новости-Prelect попытаются загрузить и извлечь информацию из каждого URL. Ранее описанные функции блокируются, то есть возвращаются, как только новостные предложения попытаются все URL-адреса. Полученный список содержит все успешно извлеченные статьи.
Наконец, вы можете обработать извлеченную информацию, содержащуюся в объектах статьи. Например, чтобы экспортировать в формат JSON, вы можете использовать:
import json
with open ( "article.json" , "w" ) as file :
json . dump ( article . get_serializable_dict (), file )$ news-please Затем наступит новости. Чтобы завершить процесс нажмите CTRL+C . Затем появятся новости в течение 5-60 секунд. Вы также можете нажать CTRL+C дважды, что сразу же убьет процесс (хотя не рекомендуется).
Результаты хранятся по умолчанию в файлах JSON в папке data . В конфигурации по умолчанию, новости-Prlease также хранят исходные HTML-файлы.
Скорее всего, вы не захотите заползти с веб -сайтов, представленных в нашей примере конфигурации. Просто зайдите в файл sitelist.hjson и добавьте корневые URL -адреса веб -страниц новостей по вашему выбору. Новости-Plaeme также могут извлечь самые последние события из проекта GDELT, см. Здесь.
Новости-Prome также поддерживает экспорт в Elasticsearch. Использование Elasticsearch также будет включать функцию управления версией. Во -первых, включите его в config.cfg в каталоге конфигурации, который по умолчанию ~/news-please/config но также может быть изменена с помощью параметра -c на пользовательское местоположение. В случае, если каталог не существует, в указанном месте будет создан каталог по умолчанию.
[Scrapy]
ITEM_PIPELINES = {
'newsplease.pipeline.pipelines.ArticleMasterExtractor' :100 ,
'newsplease.pipeline.pipelines.ElasticsearchStorage' :350
} Вот и все! За исключением случаев, если ваша база данных Elasticsearch не расположена по адресу http://localhost:9200 , использует другое имя пользователя/пароль или аутентификацию CA-Certificate. В этих случаях вам также нужно будет изменить следующее.
[Elasticsearch]
host = localhost
port = 9200
...
# Credentials used for authentication (supports CA-certificates):
use_ca_certificates = False # True if authentification needs to be performed
ca_cert_path = '/path/to/cacert.pem'
client_cert_path = '/path/to/client_cert.pem'
client_key_path = '/path/to/client_key.pem'
username = 'root'
secret = 'password' Новости-Pleak позволяют хранить статьи в базе данных PostgreSQL, включая функцию управления версиями. Чтобы экспортировать в PostgreSQL, откройте соответствующий файл конфигурации ( config_lib.cfg для библиотечного режима и config.cfg для режима CLI) и добавьте модуль PostgresQlStorage в трубопровод и настройте учетные данные базы данных:
[Scrapy]
ITEM_PIPELINES = {
'newsplease.pipeline.pipelines.ArticleMasterExtractor' :100 ,
'newsplease.pipeline.pipelines.PostgresqlStorage' :350
}
[Postgresql]
# Postgresql-Connection required for saving meta-informations
host = localhost
port = 5432
database = 'news-please'
# schema = 'news-please'
user = 'user'
password = 'password' Если вы планируете использовать новости-Please и ее экспорт в PostgreSQL в производственной среде, мы рекомендуем удалить пакет psycopg2-binary и установить psycopg2 . Мы используем первое, поскольку для установки не требуется компилятор C. См. Здесь, для получения дополнительной информации о различиях между psycopg2 и psycopg2-binary и о том, как настроить производственную среду.
Новости-Preece позволяют хранить статьи в базе данных Redis, включая функцию управления версией. Для экспорта в Redis откройте соответствующий файл конфигурации ( config_lib.cfg для библиотечного режима и config.cfg для режима CLI) и добавить модуль RedisStorage в трубопровод и настроить учетные данные соединения:
[Scrapy]
ITEM_PIPELINES = {
'newsplease.pipeline.pipelines.ArticleMasterExtractor' :100 ,
'newsplease.pipeline.pipelines.RedisStorage' :350
}
[Redis]
host = localhost
port = 6379
db = 0
# You can add any redis connection parameter here
ssl_check_hostname = True
username = "news-please"
max_connections = 24Этот конвейер также должен быть совместим с AWS Elasticache и Store Memory Store
Мы собрали кучу полезной информации как для пользователей, так и для разработчиков. Как пользователь, вы, скорее всего, будете иметь дело только с двумя файлами: sitelist.hjson (чтобы определить сайты для ползания) и config.cfg (вероятно, только редко, если вы хотите настроить конфигурацию).
Вы можете найти больше информации об использовании и развитии в нашей вики! Прежде чем связаться с нами, пожалуйста, ознакомьтесь с вики. Если у вас все еще есть вопросы о том, как использовать новости, пожалуйста, создайте новый вопрос в Devingsionon здесь, на GitHub. Пожалуйста, поймите, что мы не можем оказать индивидуальную поддержку по электронной почте. Мы считаем, что помощь более ценна, если она публично обменивается, чтобы больше людей могли извлечь выгоду из этого. Однако, если вам все еще требуется индивидуальная поддержка, например, из -за конфиденциальности вашего проекта, мы можем предоставить вам частную консультацию. Свяжитесь с нами для получения информации о ценах и более подробной информации.
Для отчетов об ошибках мы просим вас использовать шаблон отчета об ошибках. Убедитесь, что вы используете последнюю версию новостей-Please, так как мы не можем оказать поддержку более старыми версиями. Как описано ранее, мы не можем поддержать вопросы или вопросы, отправленные по электронной почте.
Ваши пожертвования высоко ценится! Они освободят нас, чтобы больше работать над этим проектом, чтобы выполнять такие задачи, как добавление новых функций, поддержка ошибок и решение дальнейших проблем с библиотекой.
Этот проект был бы невозможно без вклада следующих студентов (заказано в алфавитном порядке):
Мы также благодарим всех других участников, которые вы можете найти на странице участников!
Если вы используете новости, пожалуйста, процитируйте нашу статью (ResearchGate, Mendeley):
@InProceedings{Hamborg2017,
author = {Hamborg, Felix and Meuschke, Norman and Breitinger, Corinna and Gipp, Bela},
title = {news-please: A Generic News Crawler and Extractor},
year = {2017},
booktitle = {Proceedings of the 15th International Symposium of Information Science},
location = {Berlin},
doi = {10.5281/zenodo.4120316},
pages = {218--223},
month = {March}
}
Вы можете найти больше информации об этом и других новостных проектах на нашем веб -сайте.
Вы хотите внести свой вклад? Отлично, мы всегда счастливы за любую поддержку в этом проекте! Мы особенно ищем запросы на привлечение, которые исправляют ошибки. Мы также приветствуем запросы на привлечение, которые вносят ваши собственные идеи.
Внося вклад в этот проект, вы соглашаетесь с тем, что ваши взносы будут лицензироваться в соответствии с лицензией проекта.
Мы любим вклад наших пользователей! Если вы планируете отправить запрос на привлечение, сначала откройте проблему и остановите проблему, которую вы хотите исправить или что вы хотите улучшить, и как! Таким образом, мы можем обсудить, можно ли в первую очередь добавить вашу идею, и, если это так, если это так, как это лучше всего реализовать, чтобы вписаться в архитектуру и стиль кодирования. В этом вопросе, пожалуйста, укажите, что вы планируете реализовать описанные функции.
К сожалению, у нас нет ресурсов для реализации функций, запрашиваемых пользователями. Вместо этого мы рекомендуем вам реализовать функции, которые вам нужны, и если вы хотите открыть здесь запрос на привлечение, чтобы сообщество также могло извлечь выгоду из ваших улучшений.
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать новости, за исключением соответствия лицензии. Копия лицензии включена в проект, см. File License.txt.
Если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии. Логотип «Новости» является любезно предоставленным Марио Хэмборгом.
Copyright 2016-2024 Команда новостей