Я использую beautifulsoup
, чтобы очистить сайт, получить все элементы p
с классом text
. Иногда внутри этого p
существует элемент с классом emoji
, который я хочу сохранить. Итак, я изначально сделал этот цикл:
for p in soup.find_all('p', {'class': 'text'}):
emoji = p.select('emoji')
ems = ""
if emoji:
for em in emoji:
ems += (str(em['alt']))
result.append([p.getText(), ems])
Я преобразовал это в однострочный цикл:
result = [[x.getText(), y['alt']] for x in soup.find_all("p", {"class": "text"}) for y in x.select('emoji')]
Проблема с моим однострочным циклом:
Сохраняет p
там, где существует класс emoji
только . Мне нужно сохранить все p
, а когда emoji
не существует, я хочу сохранить пустую строку, например ['lorem ipsun', ''] . Куда мне добавить это условие в однострочном цикле?
Если существует несколько emoji
с, он сохраняет то же самое text
n раз, n - количество смайликов, каждый раз с различным сингл эмодзи. Как я могу сохранить все смайлики, разделенные запятой? Пытался сделать ''.join(','+y['alt'])
вместо y['alt']
, но не изменил мой результат.
Заранее спасибо.