복붙노트

[PYTHON] BeautifulSoup 객체에 새 태그를 삽입하려면 어떻게해야합니까?

PYTHON

BeautifulSoup 객체에 새 태그를 삽입하려면 어떻게해야합니까?

학사와 HTML 건설 주위에 내 머리를 얻으려고.

새 태그를 삽입하려고합니다.

self.new_soup.body.insert(3, """<div id="file_history"></div>""")   

결과를 확인할 때 나는 얻는다.

&lt;div id="file_histor"y&gt;&lt;/div&gt;

그래서 websafe html에 대해 새 니타 이징되는 문자열을 삽입합니다.

내가보기를 기대하는 것은 :

<div id="file_history"></div>

ID가 file_history 인 위치 3에 새 div 태그를 삽입하려면 어떻게해야합니까?

해결법

  1. ==============================

    1.팩토리 메소드를 사용하여 새 요소를 만듭니다.

    팩토리 메소드를 사용하여 새 요소를 만듭니다.

    new_tag = self.new_soup.new_tag('div', id='file_history')
    

    그것을 삽입하십시오 :

    self.new_soup.body.insert(3, new_tag)
    
  2. ==============================

    2.태그를 추가하는 방법에 대한 설명서를 참조하십시오.

    태그를 추가하는 방법에 대한 설명서를 참조하십시오.

    soup = BeautifulSoup("<b></b>")
    original_tag = soup.b
    
    new_tag = soup.new_tag("a", href="http://www.example.com")
    original_tag.append(new_tag)
    original_tag
    # <b><a href="http://www.example.com"></a></b>
    
    new_tag.string = "Link text."
    original_tag
    # <b><a href="http://www.example.com">Link text.</a></b>
    
  3. ==============================

    3.다른 해답은 문서에서 직접 확인할 수 있습니다. 다음은 바로 가기입니다.

    다른 해답은 문서에서 직접 확인할 수 있습니다. 다음은 바로 가기입니다.

    from bs4 import BeautifulSoup
    
    temp_soup = BeautifulSoup('<div id="file_history"></div>')
    # BeautifulSoup automatically add <html> and <body> tags
    # There is only one 'div' tag, so it's the only member in the 'contents' list
    div_tag = temp_soup.html.body.contents[0]
    # Or more simply
    div_tag = temp_soup.html.body.div
    your_new_soup.body.insert(3, div_tag)
    
  4. from https://stackoverflow.com/questions/21356014/how-can-i-insert-a-new-tag-into-a-beautifulsoup-object by cc-by-sa and MIT license