如何获得唯一的ID与ID在美丽的汤以一定的价值结束?

问题描述:

我有一个网页源,它有它们各自的ID这么多div。如何获得唯一的ID与ID在美丽的汤以一定的价值结束?

例如:

<div id="abc_answer">Some content</div> 
<div id="abcd_answer">Some content</div> 
<div id="ggg">Some Content</div> 

我想提取其在所有给定的div id为“_answer”子唯一信息。我想与beautifulsoup

这里是解决方案:

bsObj = BeautifulSoup(some.text, "html.parser"); 
found = bsObj.findAll("div", id=lambda x: x and x.endswith('_answer')) 
+0

让我试试这个,并通知您,感谢BTW –

一种选择是使用.select() method并传入attribute selector[id$=_answer]这将选择与子_answer结束的id属性值的元素来做到这一点:

soup.select('div[id$=_answer]') 

输出:

> [<div id="abc_answer">Some answer</div>, <div id="abcd_answer">Some answer</div>] 

你可以通过一个函数来find_all,可以做任何检查:

soup.find_all(lambda tag: tag.name=='div' \ 
         and tag.has_attr('id') \ 
         and tag['id'].endswith("_answer"))) 
#[<div id="abc_answer">Some content</div>, 
# <div id="abcd_answer">Some content</div>] 

请确保在查看其值之前检查id是否存在。