在Python中删除HTML Div标签

0 投票
1 回答
698 浏览
提问于 2025-04-17 08:54

我们如何在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

撰写回答