Подтвердить что ты не робот

Удалить теги из разысканного списка Beautiful Soup?

Я сейчас вхожу в цикл for со всеми строками, которые я хочу:

    page = urllib2.urlopen(pageurl)
    soup = BeautifulSoup(page)
    tables = soup.find("td", "bodyTd")
    for row in tables.findAll('tr'):

В этот момент у меня есть моя информация, но

<br />
Теги

разрушают мой вывод.

Какой самый чистый способ их удалить? Спасибо.

4b9b3361

Ответ 1

for e in soup.findAll('br'):
    e.extract()

Ответ 2

Если вы хотите перевести <br /> в строки новой строки, выполните следующие действия:

def text_with_newlines(elem):
    text = ''
    for e in elem.recursiveChildGenerator():
        if isinstance(e, basestring):
            text += e.strip()
        elif e.name == 'br':
            text += '\n'
    return text

Ответ 3

заменить теги в начале пробелом Красивый суп также принимает .read() на объекте urlopen, поэтому это должно работать - - -

page = urllib2.urlopen(pageurl)
page_text=page.read()
new_text=re.sub('</br>',' ',page_text)
soup = BeautifulSoup(new_text)
tables = soup.find("td", "bodyTd")
for row in tables.findAll('tr'):
.....

re.sub заменяет метку br пробелом

Ответ 4

Возможно, some_string.replace('<br />','\n'), чтобы заменить разрывы на новые строки.

>>> print 'Some data<br />More data<br />'.replace('<br />','\n')
Some data
More data

Возможно, вы захотите проверить html5lib и lxml, которые очень хороши при анализе html. lxml действительно быстрый, и html5lib разработан, чтобы быть чрезвычайно надежным.