在Python中删除HTML Div标签
我们如何在Python中从HTML字符串中去掉div标签呢?
举个例子,我的HTML结构是这样的:
<html>
<div id ="main">
<div id = "child1">
....(some doms)
</div>
<div id="child2">
.......(some nested dom)
</div>
</div>
</html>
在这个结构中,我需要去掉从“div #main”到“div #child2”的部分。
div "main" - div "child2" = div "child1"
也就是说,我想要得到“div #child1”。
我想这样做的原因是,“child1”里面包含了一些动态广告(也就是一些动态加载的内容),这些内容可能会出现,也可能不会。我无法直接通过“child1”的ID来获取这些内容。
我尝试过使用BeautifulSoup(),版本是3.0.7a。
>>>div = BeautifulSoup.BeautifulSoup('div',{'id':'child1'})
>>>div
[]
你能帮我解决这个问题吗?
1 个回答
1
你的问题不是很清楚。你是想获取某个元素之前的所有元素吗?
import lxml.html as lh
html = """
<div id="div1">
</div>
<div id="div2">
</div>
"""
tree = lh.fromstring(html)
for el in tree.xpath("div[@id='div2']/preceding-sibling::div"):
print el.attrib['id']
结果:
div1