使用BeautifulSoup在标记中插入标记

时间:2016-06-16 10:10:22

标签: python html insert tags beautifulsoup

我有以下HTML结构:

<BODY><tag1></tag1><tag2></tag2></BODY>

我需要使用BeautifulSoup在</BODY>之前插入一个表。

我到现在所拥有的是:

re.sub(r'\s/BODY\s', '<Table>Test<Table></BODY>', BeautifulSoup(report, "lxml"))

我得到的错误是:

&#13;
&#13;
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    execfile("C:\Users\My_PC\Desktop\Report.py")
  File "C:\Users\My_PC\Desktop\Report.py", line 10, in <module>
    re.sub(r'\s/BODY\s', '<Table>Test<Table></BODY>', BeautifulSoup(report, "lxml"))
  File "C:\Python27\lib\re.py", line 155, in sub
    return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or buffer
&#13;
&#13;
&#13;

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你不需要一个正则表达式,你只需append表到身体:

In [45]: soup = BeautifulSoup("<BODY><tag1></tag1><tag2></tag2></BODY>", "html.parser")

In [46]: soup.body.append(BeautifulSoup("<table>Test</table>","html.parser"))

In [47]: soup
Out[47]: <body><tag1></tag1><tag2></tag2><table>Test</table></body>