【问题标题】:Remove tables from html files in python从python中的html文件中删除表
【发布时间】:2016-01-20 19:22:54
【问题描述】:

我希望从 html 文件中删除所有表格,即我想要一份不包含任何表格的 html 文件副本[不是从文件中提取表格,或重新格式化等]。

我正在考虑使用正则表达式,格式为:

 html_without_tables = re.sub(r"(?s)(?i)\<table .*\<\/table\>, " ", table)

然而,有无数帖子说不要用正则表达式解析 html,这让我有些不情愿(虽然不太确定会导致什么问题)。我猜 Beautifulsoup 一定能做到,但不知道怎么做。

【问题讨论】:

    标签: python html regex beautifulsoup


    【解决方案1】:

    使用 BeautifulSoup,这基本上就像找到所有 table 标签并在每个标签上调用 .extract() 一样简单:

    for table in soup.find_all("table"):
        table.extract()
    

    【讨论】:

    • 由于 OP 不需要提取表,table.decompose() 也可以使用
    • 如果你想也可以单行[table.decompose() for table in soup.find_all("table")]
    • @cricket_007 一个班轮实际上不是一个好建议——我们应该避免在列表推导中产生副作用并构造一个额外的未定义列表。谢谢。
    猜你喜欢
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 2014-05-04
    • 2010-12-10
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多