希望这很简单——我有几个段落。在 Beautiful Soup 中,我使用 link.parent.name = 'li'
将它们转换为列表但如果有人能让我知道如何将多个 li 标签的整个创建列表包装在新的 <ul> </ul>
中,我将不胜感激。标签?
由于给定页面上会有多个单独的列表,因此我希望能够选择所有同级列表(如果可能)并将它们全部包装在新标签中。
所以
<li>1</li>
<li>1</li>
<li>1</li>
<li>2</li>
<li>2</li>
<li>2</li>
<li>3</li>
<li>3</li>
<li>3</li>
看起来像
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<ul>
<li>2</li>
<li>2</li>
<li>2</li>
</ul>
<ul>
<li>3</li>
<li>3</li>
<li>3</li>
</ul>
感谢您的帮助。
最佳答案
from bs4 import BeautifulSoup
htmlText = '''
<li>1</li>
<li>1</li>
<li>1</li>
<li>2</li>
<li>2</li>
<li>2</li>
<li>3</li>
<li>3</li>
<li>3</li>
'''
paragraphs = htmlText.split('\n\n') # splits paragraph whenever there is an empty new line
for paragraph in paragraphs:
soup = BeautifulSoup(paragraph)
lis = soup.find_all('li')
ul = soup.new_tag('ul')
for li in lis:
ul.append(li)
print(ul)
返回:
<ul><li>1</li><li>1</li><li>1</li></ul>
<ul><li>2</li><li>2</li><li>2</li></ul>
<ul><li>3</li><li>3</li><li>3</li></ul>
最重要的部分是定义 paragraphs
变量。
关于python - 使用 Beautiful Soup 将多个列表项包装在新标签 ('ul'/'ol' )中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59033884/