import bs4 import BeautifulSoup as bs
h="<b>b-text</b>"
s=bs(h,'html5lib')
b_s=s.b.string
html_code="<a>a-string</a>"
b_s.replace_with(html_code)
print b
## <b><a>a-string</a></b>
如上代码可以顺利执行,只是,html_code 里边的尖括号都被 bs 转了. 那怎么样才能让 bs 不要转义我插入的字符串呢? 多谢您的回复!
1
wyntergreg 2016-10-21 15:52:00 +08:00
|
2
vtoexsir OP @wyntergreg 多谢您的回复,我知道 bs.replace_with(tag_or_navstr_or_str)的参数是 bs 的 tag 类型或者 navigableString 类型或者干脆是 python 的字符串类型.
我就是想怎么插入一段 html 代码,让 bs 自动正确识别,代码该怎么写? |
3
XYxe 2016-10-22 09:47:02 +08:00
from bs4 import BeautifulSoup
h="<b>b-text</b>" s= BeautifulSoup(h) s.b.string.replace_with("") new_tag = s.new_tag("a") new_tag.string = "a-string" s.b.string.insert_before(new_tag) print s.b # <b><a>a-string</a></b> 不知道这样符不符合你的要求 |
4
vtoexsir OP |
5
vtoexsir OP 看来我是强人所难了!
谢谢各位! |