CoderCastrov logo
CoderCastrov
Питон

Парсинг новостей с использованием 4 строк на Python

Парсинг новостей с использованием 4 строк на Python
просмотров
2 мин чтение
#Питон

Простой подход к парсингу веб-сайта

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

Давайте начнем, первый шаг - установить пакет, который будет использоваться, а именно newspaper3k, с помощью pip. Откройте терминал (Linux / macOS) или командную строку (Windows) и введите:

$ pip install newspaper3k

После завершения установки откройте свой редактор кода и импортируйте пакет с помощью следующего кода

>>> from newspaper import Article

В этом посте я буду парсить новости с The New York Times под названием «A Lifetime of Running with Ahmaud Arbery Ends With a Text: ‘We Lost Maud».

Затем введите ссылку для парсинга

>>> article = Article('https://www.nytimes.com/2020/05/10/us/ahmaud-arbery-georgia.html’)

У вас есть возможность определить используемый язык. Тем не менее, newspaper может достаточно хорошо определить и извлечь язык. Если не указан конкретный язык, newspaper автоматически определит язык.

Но если вы хотите использовать определенный язык, измените код следующим образом.

>>> article = Article(‘[https://www.nytimes.com/2020/05/10/us/ahmaud-arbery-georgia.html'](https://www.nytimes.com/2020/05/10/us/ahmaud-arbery-georgia.html'), ‘en’) # Английский

Затем распарсите статью с помощью следующего кода

>>> article.download()>>> article.parse()

Теперь все готово. Мы можем начать использовать несколько методов для извлечения информации, начиная с авторов статьи.

>>> article.authors['Richard Fausset']

Далее мы получим дату публикации статьи.

>>> article.publish_datedatetime.datetime(2020, 5, 10, 0, 0)

Получите полный текст статьи.

>>> article.text‘Mr. Baker was with Mr. Arbery’s family at his grave site . . .’

Вы также можете получить ссылки на изображения из статей.

>>> article.top_image'https://static01.nyt.com/images/2020/05/10/us/10georgia-arbery-1/10georgia-arbery-1-facebookJumbo-v2.jpg'

Кроме того, newspaper3k также предоставляет методы для простой обработки текста, такие как получение ключевых слов и резюмирование. Сначала инициализируйте с помощью метода .nlp().

>>> article.nlp()

Получите ключевые слова.

>>> article.keywords['running',
 'world',
 'needed',
 'arbery',
 'lifetime',
 'site',
 'baker',
 'text',
 'wished',
 'maud',
 'arberys',
 'lost',
 'pandemic',
 'upended',
 'ends',
 'ahmaud',
 'unsure',
 'mr']

И следующее - резюмирование новостей, но эта функция ограничена только несколькими языками, как объясняется в документации.

>>> article.summary'Mr. Baker was with Mr. Arbery’s family at his grave site.\nIt was Mr. Arbery’s birthday.\nA pandemic had upended the world, and Mr. Baker felt adrift.\nSometimes he wished to be called a musician, and sometimes he did not.\nHe was unsure what he would become or how he would get there.'

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