Как найти None и заменить его?
Коллеги, парсинг делаю карт, написал такой код:
import requests
from bs4 import BeautifulSoup
url = 'https://www.rsb.ru/cards/credit/'
html = requests.get(url)
html = html.text
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', class_='info-block clearfix vertical-center-flex')
cards = []
for item in items:
cards.append(
{
# 'description_1': item.find('div', class_='col-sm-12').find('p',
# class_='info-block__note-under-title block_mb_25').find('p').get_text(' ', strip=True).replace('\xa0', ' '),
# 'description_2': item.find('div', class_='col-sm-12').find('p',
# class_='info-block__note-under-title block_mb_25').find('p').find_next_sibling().get_text(' ', strip=True).
# replace('\xa0', ' '),
# 'description_3': item.find('div', class_='col-sm-12').find('p',
# class_='info-block__note-under-title block_mb_25').find('p').find_next_sibling().find_next_sibling().
# get_text(' ', strip=True).replace('\xa0', ' '),
# 'description_4': item.find('div', class_='col-sm-12').find('p',
# class_='info-block__note-under-title block_mb_25').find('p').find_next_sibling().
# find_next_sibling().find_next_sibling().
# get_text(' ', strip=True).replace('\xa0', ' '),
'description_5': item.find('div', class_='col-sm-12').find('p',
class_='info-block__note-under-title block_mb_25').find('p').find_next_sibling('p').
find_next_sibling('p').find_next_sibling('p').find_next_sibling()
}
)
В итоге выдается:
[{'description_5': <p>
<b>От 21,9%</b> — процентная ставка
</p>}, {'description_5': <p>
Доступ в <b>бизнес-залы</b> аэропортов<br/>
</p>}, {'description_5': None}, {'description_5': <p>
До 25% cashback у партнеров
</p>}]
т.е. в процессе парсинга по 'description_5' имеет место быть None, как мне этот None заменить на 'None' или на какой-нибудь другой текст, чтобы потом с помощью get_text, мне получить и этот 'None' и другую инфу для дальнейшего парсинга в данном коде?
Ответы (1 шт):
Автор решения: tonysdev
→ Ссылка
Если я правильно понял суть задачи, этот код должен заменять все, замените данный код внутри цикла
value = item.find('div', class_='col-sm-12')\
.find('p', class_='info-block__note-under-title block_mb_25')\
.find('p')\
.find_next_sibling('p')\
.find_next_sibling('p')\
.find_next_sibling('p')\
.find_next_sibling()
cards.append(
{
'description_5': 'None' if value is None else value
}
)
Обычная проверка на тип данных