2016-08-06 6 views
0

私は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> 

内部の指定された文字列とのコメントを見つけることができ、私はANY_ID を知っていれば、私は文字列1を取得する必要がありますおかげ

答えて

0

Commentするtext引数を使用して型をチェック。その後、再び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

関連する問題