提取标签内的文本 HTML 评论 BeautifulSoup

Extracting Text Within Tags Inside HTML Comments with BeautifulSoup

我想在没有列表的评论中提取列表元素中的文本tags.But我不能用下面的代码做到这一点。

from bs4 import BeautifulSoup, Comment


html = """
<html>
<body>
<!--
  <ul>
     <li>10</li>
     <li>20</li>
     <li>30</li>
     </ul>
 -->

</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')

for numbers in soup.findAll(text=lambda text:isinstance(text, Comment)):
    print(numbers.extract())

结果是:

<ul>
<li>10</li>
<li>20</li>
<li>30</li>
</ul>

期望的结果:

10
20
30

查找所有 "li" 并仅打印文本。

for tag in soup.find_all("li"):
        print(tag.text))

试试下面的方法。它将为您获取您希望获得的结果。

from bs4 import BeautifulSoup, Comment

html = """
<html>
<body>
<!--
  <ul>
     <li>10</li>
     <li>20</li>
     <li>30</li>
     </ul>
 -->

</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')

for item in soup.find_all(text=lambda text:isinstance(text, Comment)):
    data = BeautifulSoup(item,"html.parser")
    for number in data.find_all("li"):
        print(number.text)

输出:

10
20
30