Очистка и удаление меток с BeautifulSoup - PullRequest
0 голосов
/ 01 июля 2010

Пока у меня есть следующий скрипт:

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 Ответ

1 голос
/ 01 июля 2010

Это будет сделано для этого ТОЧНОГО 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]
...