Python:BeautifulSoup列表中<li>的内容

2024-10-01 22:40:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据:

<li>
  <div>Content1</div>
</li>
<li>
  <div>Content2</div>
  <div>Content3</div>
  <div>Content4</div>
</li>
<li>
  <div>Content5</div>
  <div>Content6</div>
</li>

我想用BeautifulSoup将每个li元素的内容放在单独的列表中。结果应该是:

List1 = ['Content1']
List2 = ['Content2', 'Content3', 'Content4']
List2 = ['Content5', 'Content6']

div = [a.get_text(strip=True) for a in soup.select('li>div')]这样的行将整个内容放在一个列表中。我努力为每个li元素创建单独的列表,并用正确的内容填充它。有人能帮忙吗


Tags: 数据div元素内容列表lilist2beautifulsoup
2条回答

可以使用嵌套列表

例如:

from bs4 import BeautifulSoup

html = """<ul>
<li>
  <div>Content1</div>
</li>
<li>
  <div>Content2</div>
  <div>Content3</div>
  <div>Content4</div>
</li>
<li>
  <div>Content5</div>
  <div>Content6</div>
</li>
</ul>"""

soup = BeautifulSoup(html, "html.parser")
print([[j.get_text(strip=True) for j in i.find_all("div")] for i in soup.find_all("li")])

输出:

[['Content1'], ['Content2', 'Content3', 'Content4'], ['Content5', 'Content6']]

只需为每个li创建一个新列表,如下所示:

divs = [[div.get_text(strip=True) for div in li.find_all("div")] for li in soup.select('li')]

相关问题 更多 >

    热门问题