【问题标题】:BeautifulSoup convert Breaks into python newlinesBeautifulSoup 将 Breaks 转换为 python 换行符
【发布时间】:2026-01-18 00:35:02
【问题描述】:

我有一个 html 表格,每个单元格包含多行文本和数据,我试图最终提取这些表格,并且他们使用中断来提高网站的可读性。 这是一个这样的单元格的示例:

<td class="cell">-<br>21%<br>1<br>
<font color="red">5001</font><br>12%
                </td>

如何将这些换行符转换为与 Pandas 兼容的换行符(即会有一个由 \n 分隔的 4 行字符串)?

使用这个sn-p:

for cell in soup.find_all('td'):
    cell.replace_with(cell.get_text('\n',strip=True))

为表中的每个条目生成 NaN 值。

【问题讨论】:

  • 你想把整个字符串放在一个 Pandas 单元格中吗?
  • 我必须将每个单元格中的某些行与其他行匹配,所以我认为这部分可能更容易处理,比如 pandas 中的爆炸

标签: python python-3.x pandas beautifulsoup newline


【解决方案1】:

您可以将'br' 替换为'\n'

for linebreak in soup.find_all('br'):
    linebreak.replace_with('\n')

希望对您有所帮助。

【讨论】:

  • 当我尝试这个时,我确实在新行上得到了我的字符串,但是导入 pandas(通过 read_html)删除了所有的换行符