1、我在编码时,当txtb只有3层的时候,编码没问题,能达到我的目的。即查找节点,如果节点不存在,则添加节点,但是当txtb有4层的时候,find就查不到节点了。不知道什么原因。
具体编码如下
from bs4 import BeautifulSoup
user='cinyee'
proj='Christmas'
txtb="<b>behance</b>"
txtb="<b>behance<tusername>cinyee</tusername></b>"
txtb="<b>behance<tusername>cinyee<tprojname>Christmas</tprojname></tusername></b>"
soup = BeautifulSoup(txtb, "html.parser" )
print(soup.prettify())
print('-------------begin')
tuser=soup.find(name="tusername",text=user)
print(tuser)
if tuser is None:
tag = soup.new_tag("tusername")
tag.string = user
soup.b.append(tag)
print('--------1')
else:
tproj=tuser.find("tprojname",text=proj)
if tproj is None:
tag = soup.new_tag("tprojname")
tag.string = proj
tuser.append(tag)
print('--------2')
else:
tfile=tproj.find("tfilename",text=sfile)
print('--------3')
if tfile is None:
tag = soup.new_tag("tfilename")
tag.string = sfile
tproj.append(tag)
print(tuser)
print('-------------end')
print(soup.prettify())
把
text=xxx
这个条件去掉~这并不是个好主意~,通常是给标签添加属性来区分,例如:
class=user