Вебскрейпинг новостных статей в 5 строчек кода на Python

Хорошие программисты пишут код, великие — сначала ищут его на GitHub.

Хотите выделяться из толпы ученых, занимающихся машинным обучением и визуализацией? Тогда вы можете начать на один шаг раньше, собирая собственные наборы данных вместо использования устаревших файлов CSV из Kaggle.

В этой статье мы покажем вам, как унифицированным способом собирать большое количество новостных данных из множества разных источников. Для этого, вместо того, чтобы тратить месяцы на написание сценария для каждого новостного веб-сайта, вы будете использовать библиотеку newspaper3k для автоматического извлечения структурированной информации.

Для начала установим ее:

$ pip install newspaper3k

Теперь давайте попросим библиотеку newspaper3k извлечь информацию из статьи и обобщить ее для нас.

from newspaper import Article
article = Article('https://www.npr.org/2019/07/10/740387601/university-of-texas-austin-promises-free-tuition-for-low-income-students-in-2020')
article.parse()
article.nlp()

Это все, ребята. 5 строк кода, включая импорт библиотеки.

Если вы выполнили все предыдущие шаги и не получили ошибки, у вас должен быть доступ к следующей информации:

>>> article.authors
['Vanessa Romo', 'Claire Mcinerny']
>>> article.publish_date
datetime.datetime(2019, 7, 10, 0, 0)
>>> article.keywords
['free', 'program', '2020', 'muñoz', 'offering', 'loans', 'university', 'texas', 'texasaustin', 'promises', 'families', 'lowincome', 'students', 'endowment', 'tuition']

Что касается самого текста, у вас также есть возможность получить к нему полный доступ:

>>> print(article.text)
University of Texas-Austin Promises Free Tuition For Low-Income Students In 2020
toggle caption Jon Herskovitz/Reuters
Four year colleges and universities have difficulty recruiting...

В дополнение к этому можно еще получить краткую сводку:

>>> print(article.summary)
University of Texas-Austin Promises Free Tuition For Low-Income Students In 2020toggle caption Jon Herskovitz/ReutersFour year colleges and universities have difficulty recruiting talented students from the lower end of the economic spectrum who can't afford to attend such institutions without taking on massive debt.
To remedy that — at least in part — the University of Texas-Austin announced it is offering full tuition scholarships to in-state undergraduates whose families make $65,000 or less per year.
The endowment — which includes money from oil and gas royalties earned on state-owned land in West Texas — more than doubles an existing program offering free tuition to students whose families make less than $30,000.
It also expands financial assistance to middle class students whose families earn up to $125,000 a year, compared to the current $100,000.
In 2008, Texas A&M began offering free tuition to students whose families' income was under $60,000.

Неплохо для встроенной функции.

Чтобы воспользоваться всеми функциями, включая автоматизацию ленты журнала и доступ к актуальным темам, можно обратиться к официальной документации.

Сначала определите проблему и только потом ищите данные, не наоборот. Старайтесь решать реальные бизнес-задачи, потому что это именно то, за что платят деньги.

Перевод статьи «Scrape and Summarize News Articles in 5 Lines of Python Code«.