阅读(4594) (0)

Beautiful Soup 4 复制对象

2021-05-21 15:20:58 更新

copy.copy()​ 方法可以复制任意 ​Tag​ 或 ​NavigableString​ 对象

import copy
p_copy = copy.copy(soup.p)
print p_copy
# <p>I want <b>pizza</b> and more <b>pizza</b>!</p>

复制后的对象跟与对象是相等的, 但指向不同的内存地址

print soup.p == p_copy
# True

print soup.p is p_copy
# False

源对象和复制对象的区别是源对象在文档树中, 而复制后的对象是独立的还没有添加到文档树中. 复制后对象的效果跟调用了 ​extract()​ 方法相同.

print p_copy.parent
# None

这是因为相等的对象不能同时插入相同的位置.