是否有一种简化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/

10-10 17:27