Удаление тегов в Beautiful Soup

#python #web-scraping #beautifulsoup #web-crawler

#python #очистка веб-страниц #beautifulsoup #веб-сканер

Вопрос:

Я хотел бы удалить html-тег, но сохранить текст между тегами и сохранить его в списке. Это мой следующий код:

 comment_list = comment_container.findAll("div", {"class" : "comment-date"})
print(comment_list)
  

Вывод:

 [<div class="comment-date">2018-9-11 03:58</div>, 
 <div class="comment-date">2018-4-4 17:10</div>, 
 <div class="comment-date">2018-4-26 01:06</div>, 
 <div class="comment-date">2018-7-19 13:48</div>, 
 <div class="comment-date">2018-4-12 11:39</div>, 
 <div class="comment-date">2019-3-14 21:12</div>, 
 <div class="comment-date">2019-3-4 15:43</div>, 
 <div class="comment-date">2019-3-12 13:20</div>, 
 <div class="comment-date">2019-3-10 22:32</div>, 
 <div class="comment-date">2019-3-8 15:22</div>]
  

Желаемый результат:

 [2018-9-11 03:58, 2018-4-4 17:10, 2018-4-26 01:06, 
2018-7-19 13:48, 2018-4-12 11:39, 2019-3-14 21:12, 
2019-3-4 15:43, 2019-3-12 13:20, 2019-3-10 22:32, 2019-3-8 15:22]
  

Я могу извлекать текст по отдельности с помощью цикла for.

 for commentDate in comment_list:
    comments = commentDate.text
    print(comments)
  

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

Ответ №1:

Вы можете преобразовать свой список div элементов в список дат, используя понимание списка, подобное этому, чтобы получить желаемый результат:

 comment_list = comment_container.findAll("div", {"class" : "comment-date"})
comment_dates = [comment.text for comment in comment_list]
print(comment_dates)
  

Комментарии:

1. @glhe13, пожалуйста, примите ответ, чтобы закрыть вопрос, если ваша проблема решена. Или вы можете поделиться любыми проблемами, с которыми вы столкнулись.