美丽的汤柄空标签和自闭标签

时间:2017-01-15 21:27:36

标签: python html web-scraping beautifulsoup

我正在尝试使用Beautifuloup来提取html标签并删除文本。例如,拿这个html:

html_page = """
<html>
<body>
<table>
<tr class=tb1><td>Lorem Ipsum dolor Sit amet</td></tr>
<tr class=tb1><td>Consectetuer adipiscing elit</td></tr>
<tr><td>Aliquam Tincidunt mauris eu Risus</td></tr>
<tr><td>Vestibulum Auctor Dapibus neque</td></tr>
</table>
</body>
</html>
"""

期望的结果是:

<html>
<body>
<table>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
</table>
</body>
</html>

这是我到目前为止所得到的:

def get_tags(soup, parser):
copy_soup = soup
for element in copy_soup.find_all():
    if not element.find(recursive=False):
        element.string = ' ' # removes text from within tags
    element.attrs = {} # removes all tag parameters
#return str(copy_soup).split()
return copy_soup.prettify()

print get_tags(soup)

这很有效,直到......你必须处理html5,html4和xhtml之间的void标签和自动关闭标签变体。例如,<meta><meta/>都应该输出为<meta><meta/>,但上面的代码会导致<meta></meta>。我不确定是否需要修改我的代码,或者问题在于我应该使用哪个解析器。

0 个答案:

没有答案