最新消息:20210917 已从crifan.com换到crifan.org

【已解决】BeautifulSoup中如何实现子节点的内容替换

节点 crifan 553浏览 0评论
折腾:
【未解决】Python同步印象笔记帖子到WordPress后丢失缩进
期间,涉及到想要把
    <ul>
        <li>
            <div>sudo pmset -b GPUSwitch 0</div>
        </li>
        <ul>
            <li>
                <div>-b 表示 battery 为电池模式</div>
            </li>
            <ul>
                <li>
                    <div>电池模式时:用过0 集成显卡 integrated graphics</div>
                </li>
            </ul>
        </ul>
。。。
下面的li节点的内容,完全替换li下面的,最底层的div的内容
比如把:
        <ul>
            <li>
                <div>-b 表示 battery 为电池模式</div>
            </li>
换成:
        <ul>
            <li>-b 表示 battery 为电池模式</li>
目前写法是:
    parentSoup.string = curSoup.string
    parentSoup.children = []
发现好像不对。因为最底层也有child
所以改为:
parentSoup.contents = curSoup.contents
需要调试看看
或者去搞清楚:
BeautifulSoup中,如何实现节点替换,内容(包括子节点)替换
beautifulsoup replace node
python – Search and Replace in HTML with BeautifulSoup – Stack Overflow
好像有个:
a.replaceWith(p)
去找找
Beautiful Soup 4.4.0 文档 — Beautiful Soup 4.2.0 documentation
“tag中包含的字符串不能编辑,但是可以被替换成其它的字符串,用 replace_with() 方法:
tag.string.replace_with(“No longer bold”)
tag
# <blockquote>No longer bold</blockquote>”
有replace_with,不过只是对string的?
replace_with()
“PageElement.replace_with() 方法移除文档树中的某段内容,并用新tag或文本节点替代它:
markup = '<a href="http://example.com/">I linked to <i>example.com</i></a>'
soup = BeautifulSoup(markup)
a_tag = soup.a

new_tag = soup.new_tag("b")
new_tag.string = "example.net"
a_tag.i.replace_with(new_tag)

a_tag
# <a href="http://example.com/">I linked to <b>example.net</b></a>
replace_with() 方法返回被替代的tag或文本节点,可以用来浏览或添加到文档树其它地方
去试试
    logging.info("before replace: parentSoup=%s", parentSoup)
    logging.info("before replace: curSoup=%s", curSoup)
    parentSoup.replace_with(curSoup)
    logging.info("aftre  replace: parentSoup=%s", parentSoup)
    logging.info("aftre  replace: curSoup=%s", curSoup)
结果:
20201201 04:55:38 EvernoteToWordpress.py:470  INFO    parentSoup=<li><div>0 为集成显卡</div></li>
20201201 04:55:40 EvernoteToWordpress.py:505  INFO    before replace: parentSoup=<li><div>0 为集成显卡</div></li>
20201201 04:55:40 EvernoteToWordpress.py:506  INFO    before replace: curSoup=<div>0 为集成显卡</div>
20201201 04:55:44 EvernoteToWordpress.py:508  INFO    aftre  replace: parentSoup=<li></li>
20201201 04:55:57 EvernoteToWordpress.py:509  INFO    aftre  replace: curSoup=<div>0 为集成显卡</div>
parent被替换了,但是结果不对,丢失了div中的内容

再去多试试
    curSoupCopy = copy.deepcopy(curSoup)
    parentSoup.replace_with(curSoupCopy)
报错:
Traceback (most recent call last):
  File "_pydevd_bundle/pydevd_cython.pyx", line 1557, in _pydevd_bundle.pydevd_cython.ThreadTracer.__call__
RecursionError: maximum recursion depth exceeded while calling a Python object
Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized


Thread 0x000070000a04a000 (most recent call first):
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 306 in wait
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 558 in wait
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/pydevd.py", line 232 in _on_run
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 890 in _bootstrap


Thread 0x0000700009047000 (most recent call first):
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 306 in wait
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 558 in wait
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/pydevd.py", line 186 in _on_run
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 890 in _bootstrap


Thread 0x0000700008044000 (most recent call first):
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 302 in wait
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 558 in wait
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py", line 43 in _on_run
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 890 in _bootstrap


Thread 0x0000700007041000 (most recent call first):
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 210 in _read_line
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 228 in _on_run
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 890 in _bootstrap


Thread 0x000070000603e000 (most recent call first):
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 306 in wait
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/queue.py", line 179 in get
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 339 in _on_run
  File "/Users/xxx/.vscode/extensions/ms-python.python-2020.11.371526539/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/Users/xxx/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 890 in _bootstrap


Current thread 0x000000010a4085c0 (most recent call first):
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 182 in _deepcopy_atomic
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 229 in _deepcopy_dict
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 269 in _reconstruct
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 172 in deepcopy
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 204 in _deepcopy_list
  File "/Users/xxx/.local/share/virtualenvs/EvernoteToWordpress-7_Cmrr6D/lib/python3.8/copy.py", line 146 in deepcopy
  ...
然后:
parentSoup.children = curSoup.children
报错:
发生异常: AttributeError
can't set attribute
刚发现有个:
unwrap Beautiful Soup 4.4.0 文档 — Beautiful Soup 4.2.0 documentation
貌似正式我们要的
去试试
前提:此处确保li下面只有单个div,才可以这么写
    # Prerequisite: li only have one div child !
    parentSoup.div.unwrap()
结果:
20201201 05:07:03 EvernoteToWordpress.py:506  INFO    before replace: curSoup=<div>0 为集成显卡</div>
20201201 05:07:03 EvernoteToWordpress.py:507  INFO    before replace: parentSoup=<li><div>0 为集成显卡</div></li>
20201201 05:07:05 EvernoteToWordpress.py:514  INFO    aftre  replace: parentSoup=<li>0 为集成显卡</li>
20201201 05:07:07 EvernoteToWordpress.py:515  INFO    aftre  replace: curSoup=<div></div>
是我们要的效果。
先这么用。
如果后面有更好的写法,再说。
【总结】
此处对于:
            <li>
                <div>-b 表示 battery 为电池模式</div>
            </li>
...
想要变成:
            <li>-b 表示 battery 为电池模式</li>
...
前提:确保li下面只有一个div
则可以写成:
liSoup.div.unwarp()
即可。
其中div是li下面的div节点的name

转载请注明:在路上 » 【已解决】BeautifulSoup中如何实现子节点的内容替换

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.190 seconds, using 23.41MB memory