如何用Python递归遍历HTML层级结构并提取文件名?

如何用python递归遍历html层级结构并提取文件名?

高效解析HTML层级结构并提取文件名

HTML文档内容常常嵌套复杂,使用传统字符串处理方法效率低下。本文介绍如何利用Python的递归函数,轻松遍历HTML结构并提取所需文件名。

HTML解析

首先,我们需要使用合适的库将HTML片段解析成可遍历的数据结构。Beautiful Soup 4库是一个理想的选择:

立即学习“Python免费学习笔记(深入)”;

from bs4 import BeautifulSouphtml_content = """
  • favicon.ico
  • """soup = BeautifulSoup(html_content, "html.parser")

    递归遍历函数

    解析完成后,我们使用递归函数深度优先遍历HTML树:

    def extract_filenames(element, current_path=""):    if element.name == "li":        filename = element.text.strip()        yield f"{current_path}{filename}" if current_path else filename    elif element.name and element.name != 'code': #忽略code标签        new_path = f"{current_path}{element.text.strip()}/" if element.text.strip() else current_path        for child in element.children:            yield from extract_filenames(child, new_path)

    结果生成与输出

    最后,我们调用递归函数,收集所有提取的文件名:

    file_paths = list(extract_filenames(soup))print(file_paths)#输出:['favicon.ico', 'banner-ads/ad01.png', 'banner-ads/ad02.png', 'banner-ads/ad03.png', 'banner-ads/ad04.png', 'banner-ads/ad06.jpg']

    通过以上步骤,我们成功地利用Python递归函数遍历HTML结构,并提取所有所需的文件名,提高了代码效率和可读性。 代码中增加了对code标签的忽略处理,避免了不必要的路径生成。

    以上就是如何用Python递归遍历HTML层级结构并提取文件名?的详细内容,更多请关注创想鸟其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
    发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1356538.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2025年12月13日 19:54:23
    下一篇 2025年12月13日 19:54:31

    相关推荐

    发表回复

    登录后才能评论
    关注微信