删除Beautiful Soup中的标签

问题描述 投票:0回答:1

我想删除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)

我想使用日期进行比较(找到最早的日期),因此我觉得将日期保存到列表中将是最易于管理的。

python web-scraping beautifulsoup web-crawler
1个回答
2
投票

您可以使用列表推导将div元素列表转换为日期列表,以获得所需的输出:

comment_list = comment_container.findAll("div", {"class" : "comment-date"})
comment_dates = [comment.text for comment in comment_list]
print(comment_dates)
© www.soinside.com 2019 - 2024. All rights reserved.