2012-08-27 3 views
0

나는 몇 가지 추가로 (내가 두 번 삽입 된 코드를 가지고 결과BeautifulSoup로의 new_tag 두 번

soup.find_all('div', id='head',limit=1)[0].insert(1, soup.new_tag(u'<div id="menu_top_right" class="menu_top"><div class="menu_inner"><a class="" target="_blank" href="./local/zkratky/index.html">Zkratky</a><span>|</span><a class="" target="_blank" href="./local/slovnik/index.html">Slovník</a><span>|</span><a class="" target="blank" href="./local/dokumenty/index.html">Dokumenty</a></div></div><div class="clear"></div>')) 

와 BeautifulSoup로 한 번에 div에하는 [ID = '머리'] 몇 가지 태그를 추가하기 위해 노력하고있어 삽입 < 및>). 그러나 이유는 알 수 없습니다.

<<div id="menu_top_right" class="menu_top"> 
    <div class="menu_inner"> 
     <a class="" target="_blank" href="./local/zkratky/index.html">Zkratky</a><span>|</span> 
     <a class="" target="_blank" href="./local/slovnik/index.html">Slovník</a><span>|</span> 
     <a class="" target="blank" href="./local/dokumenty/index.html">Dokumenty</a> 
    </div> 
</div> 
<div class="clear"></div>> 
</<div id="menu_top_right" class="menu_top"> 
    <div class="menu_inner"> 
     <a class="" target="_blank" href="./local/zkratky/index.html">Zkratky</a><span>|</span> 
     <a class="" target="_blank" href="./local/slovnik/index.html">Slovník</a><span>|</span> 
     <a class="" target="blank" href="./local/dokumenty/index.html">Dokumenty</a> 
    </div> 
</div> 
<div class="clear"></div>> 

난 당신이 한 soup.new_tag으로 여러 가지 새로운 태그를 만들 수 없다는 워드 프로세서에서 아무것도 찾을 수 없습니다(). 무엇이 문제일까요?

+0

'new_tag'는 태그에 이미'<' and '> '을 추가 한 것으로 보이므로 문자열 시작 부분에서'<'를 제거하고 마지막 부분에서'>'를 제거하십시오. – Leri

답변

1

BeautifulSoup4를 사용하고 있다고 가정합니다. 당신이 할 경우 문제는 당신은 혼자가 삽입 HTML을, 하나 new_tag() 여러 태그를 생성 할 수 없다는 것입니다 :

>>> soup.new_tag('<div myattr="foo"></div>') 
<<div myattr="foo"></div>></<div myattr="foo"></div>> 
당신은 각 아이를 별도로 작성하고 수동으로 속성을 지정해야합니다

:

>>> parent = soup.find('div') 
>>> parent 
<div></div> 
>>> new_tag = soup.new_tag('div') 
>>> new_tag['id'] = 'menu_top_right' 
>>> new_tag['class'] = 'menu_top' 
>>> new_tag 
<div class="menu_top" id="menu_top_right"></div> 
>>> parent.insert(1, new_tag) 
>>> soup 
<div><div class="menu_top" id="menu_top_right"></div></div> 

편집 : 구문 강조 표시로이 모양이 이상하게 보입니다.