Возможно, вы захотите установить ограничение на количество статей, которые вы хотите получить за раз. Я несколько раз нажимал кнопку «Показать больше» для категории терроризма, и она просто продолжается.
Чтобы найти ссылки, необходимо проанализировать структуру html и найти шаблоны. В этом случае каждый предварительный просмотр статьи находится в элементе списка с class = "css-13mho3u". Однако я проверил другую категорию, и этот шаблон класса не будет соответствовать другим. Но вы можете видеть, что все эти элементы списка находятся под упорядоченным элементом списка, который class = "polite", и это соответствует другим категориям новостей.
Под каждой категорией списка есть одна ссылка, которая будет ссылаться на статью. Так что вам просто нужно взять его и извлечь href. Ваш код может выглядеть примерно так:
ol = soup.find('ol', {'class':'polite'})
lists = ol.findAll('li')
for list in lists:
link = list.find('a')
url = link['href']
Чтобы нажать кнопку «Показать больше», вам потребуется использовать дополнительные инструменты за пределами красивого супа. Вы можете использовать веб-драйвер Selenium, чтобы щелкнуть по нему, чтобы открыть следующую страницу. Вы можете следить за верхним ответом на этом ТАК вопросе , чтобы научиться делать это.