2016-09-09 2 views
2

Я пытаюсь использовать BS4 и Python для сохранения и замены содержимого первого тега <translate> в HTML-файле.Python3 Beautiful Soup get HTML tag anchor

Теперь я пытаюсь сделать что-то вроде этого:

translate_bs4 = bs4_object.find('translate') 
translate_key = '{{ key }}' 
translate_initial = str(title_bs4) 
translate_bs4.string = translate_key 

Мой тестовый пример:

<translate>tag with <other_tag>some text</other_tag></translate> 
<much_longer_file>...</much_longer_file> 

и HTML является ожидаемый один из:

<translate>{{ key }}</translate> 
<much_longer_file>...</much_longer_file> 

но значение translate_initial составляет

<translate>tag with <other_tag>some text</other_tag></translate> 

вместо ожидаемого

tag with <other_tag>some text</other_tag> 

Я знаю, что он может быть легко извлечен с помощью регулярных выражений, но я хочу еще немного DOM, связанные с решением.

ответ

1

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

translate_bs4 = bs4_object.find('translate') 
translate_initial = translate_bs4.decode_contents(formatter="html") 
+0

Ваше решение работает, но у меня есть некоторые проблемы с некоторыми не-ASCII символов, которые не имеет никакого эквивалентного HTML сущности. Решил, установив форматтера на None. Спасибо! : D –

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