Я хочу почистить URL с сайта.Я использую beautifulsoup4.
Структура, которую я пытаюсь очистить, выглядит следующим образом: Структура HTML
Код, который я использую, таков:
soup = BeautifulSoup(response.text, "html.parser")
all_urls = [x.p.a.get('href') for x in soup.findAll("div", class_="b-accordion__text")]
Когда я запускаю скрипт, я получаю следующую ошибку:
'NoneType' object has no attribute 'get'
Это, вероятно, связано с тем, что некоторые из div являются пустыми и не содержат p / a, и поэтому вызывается функция getна несуществующем объекте.
<div class="b-accordion__text">
</div>
Когда я пытаюсь добавить выражение if, например:
all_urls = [x.p.a.get('href') for x in soup.findAll("div", class_="b-accordion__text") if x.p.a]
, я получаю ошибку, что не существует:
'NoneType' object has no attribute 'a'
Из-за того, что я новичок в Python, я не знаю, как справиться с этой ошибкой.Я бы ожидал предупреждения, что некоторые элементы не имеют ap / a, и сценарий все равно будет выполняться.Но он прерывается.
Вопрос: Как обработать / отловить эту ошибку для пустых тегов div?