2013-05-29 3 views
0

У меня проблема с написанием кода в Python и BS4.Изменить строку Beautiful Soup

Предполагая, есть следующий абзац:

<p id="paragraph"> 
Here is the paragraph <a href="/" id="url">Here an url</a> the paragraph continues. 
</p> 

я беру идентификатор и использовать replace_with заменить строку (в P и A тег). Но в этом случае результаты следующие:

Here is the paragraph the paragraph continues. Here an url 

Структура не соблюдается. Каков правильный метод?

Добавить код:

page = open('file.html') 
soupPage = BeautifulSoup(page) 
findId = soupPage.find(id='nameOfId') 
findId.replace_with('NewString') 
+0

Не могли бы вы также указать свой код? –

+0

Привет, Джон, да, я редактирую сообщение. – Benyi

ответ

1

Попробуйте это:

from bs4 import BeautifulSoup 

page = open('file.html') 
soupPage = BeautifulSoup(page) 
findId = soupPage.find(id='url') 
findId.contents[0].replace_with('NewString') 
print soupPage 

принты:

<html><body><p id="paragraph"> 
Here is the paragraph <a href="/" id="url">NewString</a> the paragraph continues. 
</p></body></html> 

Надежда это то, что вы хотели.