Присвоение bs4.element.Tag переменной и ее изменение - PullRequest
0 голосов
/ 18 марта 2020

У меня есть bs4.element.Tag (OriginalElement), который назначает ему переменную, а затем пытается удалить некоторые теги в назначенной переменной, а затем использует оригинальный элемент тега (OriginalElement), чтобы назначить его другой переменной, а затем пытается удалить некоторые другие элементы, но первое изменение отражено в исходном элементе тега (OriginalElement), и я хотел бы знать, есть ли альтернативный способ исправить это?

Фрагмент кода:

beforeEl = OriginalElement
if(beforeEl('ins')):
    [r.extract() for r in beforeEl('ins')]
    writeFile.write("Before    :: "+str(beforeEl.text).replace("\n"," ").replace("\t"," ")+"\n")
afterEl = OriginalElement
if(afterEl('del')):
    [q.extract() for q in afterEl('del')]
    writeFile.write("After     :: "+str(afterEl.text).replace("\n"," ").replace("\t"," ")+"\n")

1 Ответ

0 голосов
/ 18 марта 2020

Грязный обходной путь может быть

Фрагмент кода:

beforeEl = bs4.BeautifulSoup(str(OriginalElement),features="lxml")
if(beforeEl('ins')):
    [r.extract() for r in beforeEl('ins')]
    writeFile.write("Before    :: "+str(beforeEl.text).replace("\n"," ").replace("\t"," ")+"\n")
afterEl = bs4.BeautifulSoup(str(OriginalElement),features="lxml")
if(afterEl('del')):
    [q.extract() for q in afterEl('del')]
    writeFile.write("After     :: "+str(afterEl.text).replace("\n"," ").replace("\t"," ")+"\n")

Но я хотел бы узнать эффективный способ исправить это.

...