2013-04-13 58 views
2

我跨度标签包括:<span id="internal-source-marker_0.9510186333209276"><span>如何使用美丽的汤在html中获取span标记的值?

我想要做的是转换到这<span><span>

基本上,我想要得到的检查,如果跨度具有价值给它的ID,然后将其彻底删除。我完全困惑如何去做这件事。它应该是正则表达式还是美丽的汤?

正则表达式的问题是,我不知道如何替换一个子字符串,一旦匹配。

也许做美丽的汤和正则表达式的组合? (不知道这是否是一个好的和有效的想法。)

回答

2

只需从attrib映射中删除属性;假设你有一个局部变量span<span>标签的参考:

if span.has_key('id'): 
    del span['id'] 

演示:

>>> soup = BeautifulSoup('<span id="internal-source-marker_0.9510186333209276"></span>') 
>>> span = soup.find('span') 
>>> span 
<span id="internal-source-marker_0.9510186333209276"></span> 
>>> if span.has_key('id'): 
...  del span['id'] 
... 
>>> span 
<span></span> 
+0

如果我可能会问,如果这样的任务是使用正则表达式完成,其中一个会更快? – Hick

+0

@Hick:完全取决于span标签上可能存在的其他*属性。正则表达式和HTML/XML可以真正快速地变得非常复杂。 –