2

Это суп из WordPress страницы записи:Как визуализировать содержимое тега в юникоде в BeautifulSoup?

content = soup.body.find('div', id=re.compile('post')) 
title = content.h2.extract() 
item['title'] = unicode(title.string) 
item['content'] = u''.join(map(unicode, content.contents)) 

Я хочу, чтобы опустить закрывающий тег div при назначении item['content']. Есть ли способ визуализации всех дочерних тегов тега в юникоде? Что-то вроде:

item['content'] = content.contents.__unicode__() 

, который даст мне одну строку в Юникоде вместо списка.

ответ

6

Вы пробовали:

unicode(content) 

Он преобразует разметку content «s к одной Unicode строки.

Edit: Если вы не хотите тега, попробуйте:

content.renderContents() 
+0

Да, но я хочу, чтобы опустить тег. Внешний DIV в этом случае. – muhuk

+0

ну, renderContents() возвращает str, а не unicode. Я хотел бы избежать ненужного кодирования и декодирования. – muhuk

+2

Я проверил документы и исходный код, но не смог найти метод, который возвращает содержимое как один объект Unicode. renderContents() возвращает строку, закодированную в UTF-8. Поэтому преобразование результата renderContents() в объект Unicode - лучший подход, который я могу найти. –