[Python] Скрипт для получения новостей с сайта Chita.ru
Excalibra
Posted on November 21, 2024
Получение новостей с Chita.ru с помощью Python
Это в основном вдохновлено Python-скриптом для парсинга новостей, статистического анализа сегментации текста и генерации облаков слов, как это реализовано в проектах на платформе CSDN. Я также написал собственный скрипт для более точной классификации сложных новостных записей, связанный с аспектами искусственного интеллекта и машинного обучения. Я попробовал, но объем работы оказался слишком большим, и оказалось проще использовать существующую классификацию с новостного портала Chita.ru. Учитывая, что исходный код из упомянутой статьи сложно читать, а также то, что он включает дополнительные библиотеки, такие как облака слов, его сложно сделать кроссплатформенным, поэтому я решил написать свой собственный скрипт.
Данный скрипт позволяет извлечь новости с сайта Chita.ru и сохранить их в Excel.
Используемые библиотеки: requests, BeautifulSoup для парсинга и openpyxl для работы с Excel.
Удобный способ запуска скрипта
Вы можете выполнить скрипт прямо из терминала с помощью следующей команды.
Эта команда скачивает и выполняет Python-скрипт для получения новостей с Chita.ru:
python -c "$(curl -fsSL https://ghp.ci/https://raw.githubusercontent.com/Excalibra/scripts/main/d-python/get_chita_news.py)"
Скрипт на Python (доступен на GitHub):
Посмотреть на GitHub
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from datetime import datetime
# -----Справочные материалы, три основных-------
# https://docs.python-requests.org/en/latest/
# https://www.crummy.com/software/BeautifulSoup/bs4/doc/
# https://openpyxl.readthedocs.io/en/stable/
# https://docs.python.org/3/library/stdtypes.html#str.strip (срезы)
# -----Справочные материалы, три основных-------
# 5.1 Добавление формата времени для имени файла
now = datetime.now()
formatted_time = now.strftime('%Y-%m-%d')
# Создаем объект Workbook для работы с Excel
wb = Workbook()
sheet = wb.active
sheet.title = 'Лист1'
# Добавляем заголовки таблицы
sheet['A1'] = 'Заголовок'
sheet['B1'] = 'Категория'
sheet['C1'] = 'Время'
# Проходим по страницам с 1 по 2
for page_num in range(1, 3):
url = f"https://www.chita.ru/text/?page={page_num}"
headers = {'User-Agent': 'Mozilla/5.0'}
r = requests.get(url, headers=headers)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
title_elements = soup.find_all('div', class_='dmp3V')
category_elements = soup.find_all('div', class_='VC1Fb')
time_elements = soup.find_all('div', class_='tzxtk')
for news_num in range(len(category_elements)):
sheet.append([category_elements[news_num].text.strip('[]'), title_elements[news_num].text, time_elements[news_num].text])
# Сохраняем Excel файл
wb.save(f"chita_{formatted_time}.xlsx")
Лучше всего использовать с рядом научных статей по анализу больших данных:
- И. В. Соколова, А. В. Кузнецова - «Исследование извлечения социальных рисков на основе популярных новостных запросов в поисковых системах» (Институт системного анализа РАН, Системы и сети, Том 39, № 1, Январь 2020)
- Д. И. Федоров - «Анализ функционала новостных сервисов в социальной сети ВКонтакте в условиях больших данных» (Московский государственный университет, Факультет журналистики, 2017)
- В. А. Павлов - «Тенденции чтения новостей в сети в России: на примере популярных поисковых запросов» (Московский государственный университет, Современные медиа, 2013, № 9)
- И. Н. Гусев - «Социальная атмосфера и структурные особенности российской общественной мысли в условиях анализа больших данных» (РГУ, Журнал РГУ, 2013, № 5)
Posted on November 21, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.