我正在尝试使用Beautiful Soup python库将一些内容附加到html页面的主体中。
>>> from bs4 import BeautifulSoup
>>> doc = BeautifulSoup("<html><head></head><body></body></html>", "html.parser")
>>> body = BeautifulSoup("<ol><li>1</li><li>2</li></ol>", "html.parser")
>>> print doc.html.body.ol
None
>>> doc.html.body.append(body)
>>> print doc.html.body.ol
None
追加后,我仍然看到ol标签为空。
>>> body.ol
<ol><li>1</li><li>2</li></ol>
>>> doc.html.body
<body><ol><li>1</li><li>2</li></ol></body>
>>>
然而。如果我打印整个身体标签,你可以看到内容似乎在那里。我觉得我不太了解追加操作。
编辑:
我不知道为什么,但似乎我可以附加标签而不是根。例如,doc.html.body.append(body.ol)
正如我所期望的那样工作。我也可以for tag in body.children: doc.html.body.append(tag)
。
我的问题是为什么根不会附加?
答案 0 :(得分:0)
您应该附加Preparing to install archives
Downloading Android SDK Platform-tools, revision 23.1
Installing Android SDK Platform-tools, revision 23.1
Stopping ADB server failed (code -1).
Installed Android SDK Platform-tools, revision 23.1
而不是body.ol
。换句话说,添加body
实例而不是Tag
实例:
BeautifulSoup
或者,如果您不知道哪个标签是父母,请使用>>> from bs4 import BeautifulSoup
>>>
>>> doc = BeautifulSoup("<html><head></head><body></body></html>", "html.parser")
>>> body = BeautifulSoup("<ol><li>1</li><li>2</li></ol>", "html.parser")
>>>
>>> doc.html.body.append(body.ol)
>>>
>>> print(doc.html.body.ol)
<ol><li>1</li><li>2</li></ol>
。
您还可以将解析器切换为body.find()
(需要html5lib
to be installed):
html5lib