使用BeautifulSoup清理和删除标签

时间:2010-06-30 22:28:40

标签: python extract beautifulsoup web-scraping

到目前为止,我有以下脚本:

from mechanize import Browser
from BeautifulSoup import BeautifulSoup
import re
import urllib2

br = Browser()
br.open("http://www.foo.com")

html = br.response().read(); 

soup = BeautifulSoup(html)
items = soup.findAll(id="info")

并且运行完美,并产生以下“项目”:

<div id="info">
<span class="customer"><b>John Doe</b></span><br>
123 Main Street<br>
Phone:5551234<br>
<b><span class="paid">YES</span></b>
</div>

但是,我想要项目并清理它以获取

John Doe
123 Main Street
5551234

如何在BeautifulSoup和Python中删除此类标记?

一如既往,谢谢!

1 个答案:

答案 0 :(得分:1)

这将为此EXACT html执行此操作。显然这不能容忍任何偏差,因此你需要添加相当多的边界检查和空检查,但这里是将数据转换成纯文本的基本要点。

items = soup.findAll(id="info")
print items[0].span.b.contents[0]
print items[0].contents[3].strip()
print items[0].contents[5].strip().split(":", 1)[1]