【问题标题】:Remove tags in Beautiful Soup删除 Beautiful Soup 中的标签
【发布时间】:2019-03-15 14:02:53
【问题描述】:

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

    您可以使用这样的列表理解将 div 元素列表转换为日期列表以获得所需的输出:

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

    【讨论】:

    • @glhe13,如果您的问题得到解决,请接受关闭问题的答案。或者您可以分享您遇到的任何问题。
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2021-08-13
    • 2011-08-20
    • 1970-01-01
    • 2014-06-11
    • 2019-02-20
    相关资源
    最近更新 更多