Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2144847
А
Аноним
08 ноября 2024 09:46 · публичный вопрос
А
Аноним

Напиши работающий парсер новостей по ссылке: https://ria.ru/world/, который выводит заголовки статей и текст в них и чтобы он работал и не конфликтовал с другими функциями

Нейросеть08 ноября 2024 09:46

Создание парсера для извлечения заголовков новостей и текста из статей на сайте может быть увлекательным проектом. Давайте рассмотрим, как можно реализовать такой парсер на Python, используя библиотеки requests и BeautifulSoup. Вот пример кода:

import requests
from bs4 import BeautifulSoup

def get_news(url):
    # Отправляем GET-запрос к сайту
    response = requests.get(url)
    
    # Проверяем, успешен ли запрос
    if response.status_code == 200:
        # Парсим содержимое страницы
        soup = BeautifulSoup(response.content, 'html.parser')
        
        # Находим теги с заголовками
        headlines = soup.find_all('h2', class_='list-item__title')  # Проверьте, какой класс используется на сайте
        
        news_list = []
        
        # Проходим по всем заголовкам
        for headline in headlines:
            title = headline.get_text(strip=True)
            link = headline.find('a')['href']
            
            # Получаем текст статьи по ссылке
            article_response = requests.get(link)
            if article_response.status_code == 200:
                article_soup = BeautifulSoup(article_response.content, 'html.parser')
                article_text = article_soup.get_text()
                news_list.append({'title': title, 'text': article_text})
            else:
                print(f"Не удалось получить статью по ссылке: {link}")
        
        return news_list
    else:
        print(f"Ошибка при загрузке страницы: {response.status_code}")
        return []

# Использование функции
news_url = 'https://ria.ru/world/'
news_items = get_news(news_url)

for item in news_items:
    print(f"Заголовок: {item['title']}")
    print(f"Текст: {item['text'][:200]}...")  # Выводим первые 200 символов текста

Пояснения:

  1. Импорт библиотек: Используются requests для загрузки веб-страниц и BeautifulSoup для парсинга HTML-кода.
  2. Функция get_news: Принимает URL и делает запрос к сайту. Если запрос успешен, парсер находит заголовки и извлекает текст.
  3. Извлечение текста статьи: При переходе по ссылке на статью парсер делает еще один запрос и получает текст статьи.
  4. Вывод информации: После извлечения данных, программа выводит заголовок и краткий текст.

Установка библиотек:

Перед запуском убедитесь, что у вас установлены необходимые библиотеки. Вы можете установить их с помощью следующей команды:

pip install requests beautifulsoup4

Этот код является основой для парсера и может быть доработан в зависимости от ваших потребностей, таких как обработка ошибок или форматирование вывода. Удачи в вашем проекте!

Напиши работающий парсер новостей по ссылке: https://ria.ru/world/, который выводит заголовки статей и текст в них и чтобы он работал и не конфликтовал с другими функциями
Создание парсера для извлечения заголовков новостей и текста из статей на сайте может быть увлекательным проектом. Давайте рассмотрим, как можно реализовать такой парсер на Python, используя библиотеки `requests` и `BeautifulSoup`. Вот пример кода: ```python import requests from bs4 import BeautifulSoup def get_news(url): # Отправляем GET-запрос к сайту response = requests.get(url) # Проверяем, успешен ли запрос if response.status_code == 200: # Парсим содержимое страницы soup = BeautifulSoup(response.content, 'html.parser') # Находим теги с заголовками headlines = soup.find_all('h2', class_='list-item__title') # Проверьте, какой класс используется на сайте news_list = [] # Проходим по всем заголовкам for headline in headlines: title = headline.get_text(strip=True) link = headline.find('a')['href'] # Получаем текст статьи по ссылке article_response = requests.get(link) if article_response.status_code == 200: article_soup = BeautifulSoup(article_response.content, 'html.parser') article_text = article_soup.get_text() news_list.append({'title': title, 'text': article_text}) else: print(f"Не удалось получить статью по ссылке: {link}") return news_list else: print(f"Ошибка при загрузке страницы: {response.status_code}") return [] # Использование функции news_url = 'https://ria.ru/world/' news_items = get_news(news_url) for item in news_items: print(f"Заголовок: {item['title']}") print(f"Текст: {item['text'][:200]}...") # Выводим первые 200 символов текста ``` ### Пояснения: 1. **Импорт библиотек**: Используются `requests` для загрузки веб-страниц и `BeautifulSoup` для парсинга HTML-кода. 2. **Функция `get_news`**: Принимает URL и делает запрос к сайту. Если запрос успешен, парсер находит заголовки и извлекает текст. 3. **Извлечение текста статьи**: При переходе по ссылке на статью парсер делает еще один запрос и получает текст статьи. 4. **Вывод информации**: После извлечения данных, программа выводит заголовок и краткий текст. ### Установка библиотек: Перед запуском убедитесь, что у вас установлены необходимые библиотеки. Вы можете установить их с помощью следующей команды: ```bash pip install requests beautifulsoup4 ``` Этот код является основой для парсера и может быть доработан в зависимости от ваших потребностей, таких как обработка ошибок или форматирование вывода. Удачи в вашем проекте!