帮助这个内容提取+美丽的汤

时间:2011-07-14 20:25:03

标签: python beautifulsoup

我正在尝试从这种格式的网站中提取数据

<div id=storytextp class=storytextp align=center style='padding:10px;'> 
<div id=storytext class=storytext> 
<div class='a2a_kit a2a_default_style' style='float:right;margin-left:10px;border:none;'> 
..... extra stuff
</div>  **Main Content**
</div>
</div>

请注意,MainContent可以包含其他标签,但我想要整个内容,如字符串

所以我做的就是这个

_divTag = data.find( "div" , id = "storytext" )
innerdiv = _divTag.find( "div" ) # find the first div tag
innerdiv.contents[0].replaceWith("") # replace with null

因此_divTag只有主要内容,但这不起作用。任何人都可以告诉我我犯了什么错误,我应该如何提取主要内容

1 个答案:

答案 0 :(得分:2)

只需_divTag.contents[2]

您的格式可能会误导您 - 此文字不属于最里面的div标记(innerdiv.textinnerdiv.contentsinnerdiv.findChildren()会向您显示)。

如果缩进原始XML,它会使事情变得更清楚:

<div id=storytextp class=storytextp align=center style='padding:10px;'> 
  <div id=storytext class=storytext> 
    <div class='a2a_kit a2a_default_style' style='float:right;margin-left:10px;border:none;'> 
      ..... extra stuff
    </div>  **Main Content**
  </div>
</div>

(PS:我不清楚你innerdiv.contents[0].replaceWith("")的意图是什么?要压制属性?换行?无论如何,BS哲学不是编辑解析树,而只是忽略99.9您不关心的百分比.BS文档是here)。