Парсинг сайта Яндекс

Всем добрый день. Возник вопрос при парсинге новостей из Яндекса. https://yandex.ru/ Подскажите, как спарсить именно блок новостей? Вот код, но почему-то не работает.

import requests
from bs4 import BeautifulSoup


def get_html(url):
    r = requests.get(url)
    r.encoding = 'utf8'
    return r.text


def get_link(html):
    soup = BeautifulSoup(html, 'lxml')
    head = soup.find('div', class_='news__header widget__content').find('span', class_="news__item-content ").get_text
    print(head)


data = get_link(get_html('https://yandex.ru/'))

Заранее большое спасибо!


Ответы (1 шт):

Автор решения: Smoliarick

Вот так можно распарсить сайт Яндекса (если поможет):

import requests
from bs4 import BeautifulSoup

url = 'https://yandex.ru'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')

# Ищет все новости и записывает в переменную
news = soup.find_all('a', class_='home-link list__item-content list__item-content_with-icon '
                                 'home-link_black_yes')

# Выводит текст каждой новости (всего их 10)
for link in news:
    print(link.text)
→ Ссылка