我有以下HTML:
cat /etc/letsencrypt/live/<domain>/privkey.pem /etc/letsencrypt/live/<domain>/fullchain.pem > /etc/courier/imapd.pem
/etc/init.d/courier-imap-ssl restart
我使用BeautifulSoup来获取<div class="description">Item 1<br>Item 2<br></div>
类中的内容:
description
我得到的是descriptionItems = container.find('div', attrs={'class': 'description'}).text.strip()
如何获取Item 1Item 2
,即Item 1<br>Item 2<br>
代码之间的内容,包括div
个代码?
答案 0 :(得分:1)
您可以使用:
container = BeautifulSoup('<div class="description">Item 1<br>Item 2<br></div>', 'lxml')
desc_items = ''.join(str(x) for x in container.find('div', class_='description').contents)
print(desc_items)
# Item 1<br/>Item 2<br/>
<强>解释强>
.contents
为您提供了代码中所有内容的列表。
['Item 1', <br/>, 'Item 2', <br/>]
您只需使用''.join()
加入它们即可。但是,<br/>
之类的标记类型为<class 'bs4.element.Tag'>
,因此join
会引发TypeError
错误,因为它希望所有项目都为str
类型。因此,您首先要将其转换为str
。