BeautifulSoup позволяет мне очищать некоторые статьи, но не другие (из той же газеты) - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь почистить новостные статьи с помощью 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'

1 Ответ

1 голос
/ 23 марта 2020

В этом примере нет ничего плохого в самой очистке, второй URL-адрес отвечает 301 (перенаправлено навсегда), что означает, что вы получите новый URL-адрес в ответе. В запросах необходимо выполнить некоторые действия, чтобы выполнить перенаправление.

См. Этот ответ { ссылка } для получения информации о том, как ее решить, или прочтите http://docs.python-requests.org/en/latest/user/quickstart/#redirection -историю для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...