我在Python中使用lxml进行网页抓取。当发现一个我认为有用的标签时,我会用下面的命令标记它。
myelement.addnext(etree.XML("<p>"+RandomString+"</p>"))
where 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)