我正在尝试从这种格式的网站中提取数据
<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只有主要内容,但这不起作用。任何人都可以告诉我我犯了什么错误,我应该如何提取主要内容
答案 0 :(得分:2)
只需_divTag.contents[2]
。
您的格式可能会误导您 - 此文字不属于最里面的div标记(innerdiv.text
,innerdiv.contents
或innerdiv.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)。