Найдите тег p
и используйте атрибут text
, чтобы получить его текст:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
for para_tag in soup.find_all('p'):
print(para_tag.text)
Редактировать :
Если вы ищете комментарий также внутри тега, вы можете использовать comment
import из bs4
:
s = """
<html>
<body>
<p>This is a paragraph <!-- and a comment --></p>
</body>
</html>
"""
from bs4 import BeautifulSoup
from bs4 import Comment
soup = BeautifulSoup(s)
for para_tag, comment in zip(soup.find_all('p'), soup.find_all(text=lambda text: isinstance(text, Comment))):
if comment:
print(para_tag.text, "<!--" + comment + "-->")
else:
print(para_tag.text)
Edit 2:
Использование .decode_contents () :
for para_tag, comment in soup.find_all('p'):
print(para_tag.decode_contents())
ВЫХОД:
This is a paragraph <!-- and a comment -->