【问题标题】:Python - Beautiful Soup - delete values before <br> tagPython - Beautiful Soup - 删除 <br> 标签之前的值
【发布时间】:2020-11-14 18:27:08
【问题描述】:

我在一个用 br 分隔的标签内有数据,我试图弄清楚如何删除 br 标签之前的所有值并且遇到困难。

这是我的数据的示例:

<td>
  ValueToBeDeleted
  <br>
  <br/> ValueToKeep
</td>

所以我试图保留“ValueToKeep”并删除 TD 标记中我正在处理的数据的先前值。此外,我的数据文件有数百个需要清理的 TD 标签,因此我也在寻找迭代解决方案。有什么想法吗?

【问题讨论】:

  • 您可以通过使用正则表达式模式来做到这一点,这样可能会起作用 ^\
    (.*) 请注意,您要查找的内容将在第一组中跨度>

标签: python beautifulsoup


【解决方案1】:

也许:

text = text.split('<br/>')[-1]
print(text.replace('</td>','').strip())

使用 BS4 BeautifulSoup:

from bs4 import BeautifulSoup as soup
soup_ = soup(html,'html.parser')
soup_ = soup_.find('td').text.split('\n')[-2]

【讨论】:

  • 如果文本中有\n怎么办?
【解决方案2】:

您也许可以为该特定任务使用正则表达式

您可以尝试以下对我有用的代码(需要测试更多案例):

import re

html="""    <td>
      ValueToBeDeleted
      <br>
      <br/> ValueToKeep
    </td>"""

value_search = re.search(r'\<br\/\>(.*)', html, re.IGNORECASE)

if value_search:
    value = title_search.group(1)

print(value)

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 2018-12-13
    • 2022-01-16
    • 1970-01-01
    • 2018-01-17
    • 2021-08-13
    • 1970-01-01
    • 2014-06-11
    相关资源
    最近更新 更多