Я пытаюсь почистить новостные статьи с помощью Beautiful Soup. Тем не менее, он работает только для некоторых статей на сайте, а не для других. Я не могу найти никаких явных различий в исходном коде, поэтому я был бы очень признателен за любые идеи, как решить эту проблему.
Например, это нормально:
import requests from bs4 import BeautifulSoup result = requests.get("https://www.dn.se/nyheter/sverige/ewa-stenberg-darfor-ligger-sverige-steget-efter/") src = result.content soup = BeautifulSoup(src, 'lxml') content = soup.find('div', class_='article__body') body = content.text print(body)
Но изменение URL-адреса на:
result = requests.get("https://www.dn.se/nyheter/sverige/Regeringen-vill-att-skolor-ska-fa-satta-betyg-i-arskurs-4")
приводит к следующей ошибке:
AttributeError: Объект 'NoneType' не имеет атрибута 'text'
В этом примере нет ничего плохого в самой очистке, второй URL-адрес отвечает 301 (перенаправлено навсегда), что означает, что вы получите новый URL-адрес в ответе. В запросах необходимо выполнить некоторые действия, чтобы выполнить перенаправление.
См. Этот ответ { ссылка } для получения информации о том, как ее решить, или прочтите http://docs.python-requests.org/en/latest/user/quickstart/#redirection -историю для получения дополнительной информации