2011-03-08 4 views
4

나는 아름다운 스프를 사용하고 있습니다.아름다운 스프 - 댓글 옆의 위치를 ​​기준으로 태그를 식별하십시오

주석 (구문 분석 트리에 포함되지 않은 것) 옆의 위치를 ​​기반으로 태그를 잡을 수있는 방법이 있습니까? 예를 들어

, 나는 "<!--text-->"주석 찾고 있어요 것을 <p>paragraph 2</p> 주어진 식별하는 방법, ...의 내가이 말을이 예에서

<html> 
<body> 
<p>paragraph 1</p> 
<p>paragraph 2</p> 
<!--text--> 
<p>paragraph 3</p> 
</body> 
</html> 

하자?

도움 주셔서 감사합니다.

답변

6

다른 노드와 마찬가지로 BeautifulSoup 구문 분석 트리에도 주석이 표시됩니다. 예를 들어, 텍스트 some comment text와 주석을 찾아 당신이 할 수있는 이전 <p> 요소 인쇄하기 :

from BeautifulSoup import BeautifulSoup, Comment 

soup = BeautifulSoup('''<html> 
<body> 
<p>paragraph 1</p> 
<p>paragraph 2</p> 
<!--some comment text--> 
<p>paragraph 3</p> 
</body> 
</html>''') 

def right_comment(e): 
    return isinstance(e, Comment) and e == 'some comment text' 

e = soup.find(text=right_comment) 

print e.findPreviousSibling('p') 

을 ... 그 출력됩니다

<p>paragraph 2</p> 
+0

정말 감사합니다 마크. 훌륭합니다. – Kim

관련 문제