用python3中的靓汤在html中向上移动子标签

2024-10-01 00:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要编辑一个漂亮的脚本大量的html文件。我的一些html文件包含如下所示的块,其中img标记嵌套在一个标记中

<p>
    <a class="" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/grade-1-routines" data-api-returntype="Page" href="grade-1-routines.html" id="" target="" title="">
        <img alt="1-icon-file-download.png" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/files/3523713" data-api-returntype="File" src="1-icon-file-download.png"/>
   </a>
   <a class="instructure_file_link instructure_scribd_file" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/files/3523689" data-api-returntype="File" href="closure_at_a_glance.docx" id="" target="" title="closure_at_a_glance.docx">
Closure at a Glance
   </a>
</p>

这个标签链导致我导入html文件的程序出现问题。为了解决这个问题,我想将周围的a标记全部移除,这样结果就会像这样

<p>
   <img alt="1-icon-file-download.png" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/files/3523713" data-api-returntype="File" src="1-icon-file-download.png"/>
   <a class="instructure_file_link instructure_scribd_file" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/files/3523689" data-api-returntype="File" href="closure_at_a_glance.docx" id="" target="" title="closure_at_a_glance.docx">
Closure at a Glance
   </a>
</p>

我在这里尝试了一个脚本

for img in soup.find_all('img'):
if img.parent.name == 'a':
    img.parent.decompose()
    print(img)

运行脚本会产生

<None></None>

并导致和标记都被删除。我可以做些什么来修改这个脚本,以便只有父脚本被删除,而子脚本取代它


Tags: https脚本comapiimgdatahtmlendpoint
1条回答
网友
1楼 · 发布于 2024-10-01 00:20:22

您可以使用^{}

for img in soup.find_all('img'):
    parent = img.parent
    if parent.name == 'a':
        parent.replace_with(img)

print(soup)

输出

<p>
<img alt="1-icon-file-download.png" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/files/3523713" data-api-returntype="File" src="1-icon-file-download.png"/>
<a class="instructure_file_link instructure_scribd_file" data-api-endpoint="https://hcpss.instructure.com/api/v1/courses/124/files/3523689" data-api-returntype="File" href="closure_at_a_glance.docx" id="" target="" title="closure_at_a_glance.docx">
Closure at a Glance
   </a>
</p>

相关问题 更多 >