2016-08-30 3 views
1

Я полный новичок с BeautifulSoup, и теперь я пытаюсь вставить новый тег в дочерний div родительского div.BeautifulSoup Добавить новый тег внутри дочернего DIV родителя DIV

В принципе у меня есть этот HTML фрагмент:

<div class=page-content> 
    <div class="content-block"> 
    //Insert here! 
    </div> 
</div> 

Вот мой текущий код:

soup = BeautifulSoup(open("index.html"), "lxml") 

    div_page_content = soup.find("div", { "class" : "page-content" }) 
    content_block = div_page_content.findChildren() 

    button_active = soup.new_tag('a') 
    button_active.attrs['class'] = 'button active' 
    button_active.append('This is a new button!') 

    content_block.append(button_active) 
    print content_block 

Я могу принести страницы-контента и его детей контент-блок DIV, но функция Append ничего не делает, это результат, который я получаю:

[<div class="content-block">\n</div>, <a class="button active">This is a new button!</a>] 

ответ

0

Обнаружено, что я должен используйте findNext вместо findChildren. теперь приложение работает нормально.

-1

Вы уверены, что ошибка была не в том, что вы оставили кавычки вокруг своего класса? Вы написали <div class=page-content> вместо <div class="page-content">.

+1

Это [отлично действующий HTML] (https://mathiasbynens.be/notes/unquoted-attribute-values) и не является причиной проблемы *** python *** OP. – Toastrackenigma

+0

Я ссылался на BeautifulSoup, их кодировщики использовали для борьбы с кавычками, а не с самим HTML. –

Смежные вопросы