是否有一种简化HTML表格的好方法(例如,使用BeautifulSoup)。我正在使用请求来获取表并使用BeautifulSoup提取表,但我需要该表来自:
<table>
<thead></thead>
<tbody>
<tr>
<td><a id="bar">Some text<br></br><span class="foobar">foo </span><small class="foo">bar!</small></a></td>
</tr>
</tbody>
</table>
至:
<table>
<thead></thead>
<tbody>
<tr>
<td>Some text\nfoo bar!</td>
</tr>
</tbody>
</table>
通过一种简单的方式,那么我在考虑不必去每个标签并使用soup.get_text()。
最佳答案
您可以用换行符替换br:
h = """<table>
<thead></thead>
<tr>
<td><a id="bar">Some text<br><br/><span class="foobar">foo </span><small class="foo">bar!</small></a></td>
</tr>
</table>"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(h)
td = soup.select_one("#bar")
td.br.replace_with("\n")
td.replace_with(td.text)
print(repr(soup))
这给你:
<html><body><table>\n<thead></thead>\n<tr>\n<td>Some text\nfoo bar!</td>\n</tr>\n</table></body></html>
关于python - Python简化HTML表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37184039/