【发布时间】:2016-10-14 21:16:21
【问题描述】:
我试图抓取的 html:
<div id="unitType">
<h2>BB100 <br>v1.4.3</h2>
</div>
我在下面有一个h2 标记的内容:
initialPage = beautifulSoup(urllib.urlopen(url).read(), 'html.parser')
deviceInfo = initialPage.find('div', {'id': 'unitType'}).h2.contents
print('Device Info: ', deviceInfo)
for i in deviceInfo:
print i
哪些输出:
('Device Info: ', [u'BB100 ', <br>v1.4.3</br>])
BB100
<br>v1.4.3</br>
如何使用 BeautifulSoup 而不是正则表达式删除 <h2>、</h2>、<br> 和 </br> html 标签?我试过i.decompose() 和i.strip(),但都没有奏效。它会抛出'NoneType' object is not callable。
【问题讨论】:
-
我很确定
<br>里面没有任何东西。在 HTML5 中,</br>无效。 -
好点。可能只需要求助于字符串替换。不知道是谁写了这段代码,但他们一定早就不在了。
-
@Richard,为什么你只需要 br 就遍历内容?
-
@PadraicCunningham 我仍然想要这两个值。我只是在寻找一种 Beautiful Soup 方法来摆脱
和 同时保留“v.1.4.3”。我不需要遍历内容来修改它们?这是我第一次尝试 Beautiful Soup。 -
@Richard,不,您可以使用 .find、.select、.find_all 等。您不需要查看所有内容,您可以按照我的回答进行替换用你喜欢的任何东西替换和节点
标签: python python-2.7 beautifulsoup