python中有关html知识的问题,有什么比较快捷的解决方案吗?
from bs4 import BeautifulSoup
def lists2tables(s):
soup=BeautifulSoup(s,'html.parser')
lis=soup.select('li')
maxcol=1
trs=[]
for i in range(len(lis)):
tds=lis[i].text.split(',')
if len(tds)>maxcol:
maxcol=len(tds)
tds=[f'<td>{i+1}</td>']+[f'<td>{x.strip()}</td>' for x in tds]
trs.append(tds)
maxcol+=1
for i in range(len(trs)):
if len(trs[i])!=maxcol:#补全td
for j in range(maxcol-len(trs[i])):
trs[i].append('<td></td>')
trs[i]=f"<tr>{''.join(trs[i])}</tr>"
return f"<body><table border=\"1\">{''.join(trs)}</table></body>"
s="<body><ol><li>coffee,milk,water</li><li>banana,apple</li><li>tea</li></ol></body>"
s1="<body><table border=\"1\"><tr><td>1</td><td>coffee</td><td>milk</td><td>water</td></tr><tr><td>2</td><td>banana</td><td>apple</td><td></td></tr><tr><td>3</td><td>tea</td><td></td><td></td></tr></table></body>"
assert lists2tables(s)==s1
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!