使用BeautifulSoup获取div的内容

时间:2014-09-02 01:37:53

标签: python html python-2.7 beautifulsoup html-parsing

我正在使用python2.7.6,urllib2和BeautifulSoup

从网站中提取html并存储在变量中。

如何使用beautifulsoup显示带有id的div的html内容?

<div id='theDiv'>
<p>div content</p>
<p>div stuff</p>
<p>div thing</p>

将是

<p>div content</p>
<p>div stuff</p>
<p>div thing</p>

2 个答案:

答案 0 :(得分:11)

加入div标签.contents的元素:

from bs4 import BeautifulSoup

data = """
<div id='theDiv'>
    <p>div content</p>
    <p>div stuff</p>
    <p>div thing</p>
</div>
"""

soup = BeautifulSoup(data)
div = soup.find('div', id='theDiv')
print ''.join(map(str, div.contents))

打印:

<p>div content</p>
<p>div stuff</p>
<p>div thing</p>

答案 1 :(得分:1)

从4.0.1版本开始,有一个函数decode_contents()

>>> soup = BeautifulSoup("""
<div id='theDiv'>
<p>div content</p>
<p>div stuff</p>
<p>div thing</p>
""")

>>> print(soup.div.decode_contents())

<p>div content</p>
<p>div stuff</p>
<p>div thing</p>

此问题的解决方案中的更多详细信息:https://stackoverflow.com/a/18602241/237105