Как я могу найти комментарий с указанной текстовой строкой
Я использую robobrowser для анализа html-контента. У меня есть BeautifulSoup внутри. Как я могу найти комментарий с указанной строкой внутри
<html>
<body>
<div>
<!-- some commented code here!!!<div><ul><li><div id='ANY_ID'>TEXT_1</div></li>
<li><div>other text</div></li></ul></div>-->
</div>
</body>
</html>
На самом деле мне нужно получить TEXT_1, если я знаю ANY_ID Спасибо
1 ответ
Решение
Использовать text
аргумент и проверьте тип, который будет Comment
, Затем загрузите содержимое с BeautifulSoup
снова и найдите нужный элемент id
:
from bs4 import BeautifulSoup
from bs4 import Comment
data = """
<html>
<body>
<div>
<!-- some commented code here!!!<div><ul><li><div id='ANY_ID'>TEXT_1</div></li>
<li><div>other text</div></li></ul></div>-->
</div>
</body>
</html>
"""
soup = BeautifulSoup(data, "html.parser")
comment = soup.find(text=lambda text: isinstance(text, Comment) and "ANY_ID" in text)
soup_comment = BeautifulSoup(comment, "html.parser")
text = soup_comment.find("div", id="ANY_ID").get_text()
print(text)
Печать TEXT_1
,