我们如何从python中的Html字符串中减去div标签?
例如, 我的Html DOM就像
<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
[]
请您帮忙解决上述要求吗?
答案 0 :(得分: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