BeautifulSoup 的页面中需要获取某个元素的 xpath 路径

BeautifulSoup 的页面中需要获取某个元素的 xpath 路径

python 复制代码
    def generate_xpath(tag, is_class=True):
        """
        根据页面信息获取指定内容的xpath路径
        :param tag: BeautifulSoup 的页面中需要获取xpath路径的对象
        :param is_class: 是否使用class进行创建xpath
        :return: xpath路径
        """
        def path_generator(t):
            components = []
            for parent in t.parents:
                if parent.name == '[document]':
                    break
                siblings = [sib for sib in parent.find_previous_siblings(t.name)
                            if sib.name == t.name]
                position = len(siblings) + 1
                components.append(f"{t.name}[{position}]")
                t = parent
            components.reverse()
            return '/' + '/'.join(components)

        # 优先检查唯一属性
        if tag.get('id'):
            return f"//{tag.name}[@id='{tag['id']}']"
        if is_class and tag.get('class'):
            return f"//{tag.name}[contains(@class,'{tag['class'][0]}')]"

        return path_generator(tag)
相关推荐
杨超越luckly几秒前
HTML应用指南:利用GET请求获取智己汽车门店位置信息
python·arcgis·html·汽车·数据可视化
码界筑梦坊1 分钟前
132-基于Python的中老年体检数据可视化分析系统
开发语言·python·信息可视化·flask·毕业设计
微祎_3 分钟前
写给新手的 triton-inference-server-ge-backend:昇腾Triton推理服务后端到底是啥?
前端·人工智能·cann
大飞记Python3 分钟前
【2026更新】Python基础学习指南(AI版)——06函数
开发语言·人工智能·python
电商API_180079052475 分钟前
反向海淘是什么?现状如何?未来趋势如何?
数据库·人工智能·笔记·性能优化·数据挖掘·网络爬虫
xing-xing6 分钟前
Anaconda学习总结
python
烂不烂问厨房7 分钟前
两张图片拼接在一起中间有条白线
前端
爱吃苹果的梨叔8 分钟前
2026分布式坐席系统推荐:指挥中心、调度中心、机房集中管控该怎么选?
python
掘金安东尼9 分钟前
浏览器跨域窗口通信技术调研:window.open 与 postMessage
前端
liuhl091010 分钟前
Python 列表推导式
python