Парсинг новостей с использованием 4 строк на Python
Table Of Content
Простой подход к парсингу веб-сайта
В этой статье я покажу вам, как собирать и парсить новости с различных источников. Вместо того, чтобы тратить много времени на написание кода для парсинга каждого веб-сайта, мы будем использовать 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 можно использовать для парсинга новостей на разных языках.