Python lxml 如何撤消 addnext()
Python lxml how to undo an addnext()
我正在 Python 使用 lxml 执行网络抓取。找到我认为有用的标签后,我使用以下命令对其进行标记:
myelement.addnext(etree.XML("<p>"+RandomString+"</p>"))
其中 RandomString
是固定长度的随机字符串。现在经过一定的分析,我意识到这不是要提取的标签,我想撤销addnext()
命令。
这是我尝试做的:
myelement.getparent().remove(etree.XML("<p>"+RandomString+"</p>"))
但是,我收到以下错误:
ValueError: Element is not a child of this node.
简单的说,如何反转addnext
命令?
请注意,我只想要涉及 lxml
的答案,不想要任何建议我转向 Beautifulsoup
的解决方案
如果我没理解错的话,要到达那里,您需要撤消 addnext()
的效果。通过该方法添加的新元素会立即添加到原始 myelement
旁边;这就是您要删除的目标:
myelement.addnext(etree.XML("<p>"+RandomString+"</p>"))
target = my_element.getnext()
target.getparent().remove(target)
我正在 Python 使用 lxml 执行网络抓取。找到我认为有用的标签后,我使用以下命令对其进行标记:
myelement.addnext(etree.XML("<p>"+RandomString+"</p>"))
其中 RandomString
是固定长度的随机字符串。现在经过一定的分析,我意识到这不是要提取的标签,我想撤销addnext()
命令。
这是我尝试做的:
myelement.getparent().remove(etree.XML("<p>"+RandomString+"</p>"))
但是,我收到以下错误:
ValueError: Element is not a child of this node.
简单的说,如何反转addnext
命令?
请注意,我只想要涉及 lxml
的答案,不想要任何建议我转向 Beautifulsoup
如果我没理解错的话,要到达那里,您需要撤消 addnext()
的效果。通过该方法添加的新元素会立即添加到原始 myelement
旁边;这就是您要删除的目标:
myelement.addnext(etree.XML("<p>"+RandomString+"</p>"))
target = my_element.getnext()
target.getparent().remove(target)