提取标签内的文本 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
我想在没有列表的评论中提取列表元素中的文本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