如何在python中过滤html标签?

时间:2018-02-10 03:50:04

标签: python html filter

这是html

<section class=\"xmt-style-block\" data-id=\"330057\" data-style-type=\"5\" data-tools=\"3434\">
abc cba abc cba
<p style="margin: 0px;padding: 0px;box-sizing: border-box;">
<br/> pp pp</p></section>
<section class=\"xmt-style-block\" data-id=\"330057\" data-style-type=\"5\" data-tools=\"3434\">abc cba abc cba<p style="margin: 0px;padding: 0px;box-sizing: border-box;"><br/> pp pp</p></section>

我想过滤“class”“data-id”“data-style-type”“data-tools”

仅离开<section>abc cba abc cba <p> pp pp</p></section><section>abc cba abc cba <p> pp pp</p></section>

我怎么能在python中这样做?谢谢!

2 个答案:

答案 0 :(得分:1)

>>> from bs4 import BeautifulSoup
>>> html = '<section class=\"xmt-style-block\" data-id=\"330057\" data-style-type=\"5\" data-tools=\"3434\">abc cba abc cba</section>'
>>> soup = BeautifulSoup(html, 'lxml')
>>> section = soup.find_all('section')[0]
>>> del section['class'], section['data-id'], section['data-tools'], section['data-style-type']
>>> str(section)
'<section>abc cba abc cba</section>'

您可以调整soup.find_all('section')[0]以使用id,或者搜索/循环播放

答案 1 :(得分:0)

从字面上理解你的问题中的数据,这个解决方案并不优雅,但它有效。

我将你的html放在一个名为 sample_html.html 的文件中,然后在同一个文件夹中创建了一个名为 filter_section.py 的python脚本。以下是此脚本的代码:

$(".myinputs").toArray().reduce(function(re,ele){return re+ele.value;},'')

new_html.html 的输出将不会在section元素中包含这些属性