You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取与指定兄弟元素相距n个位置的XPath兄弟元素?

提取指定范围内的兄弟元素(XPath + Selenium/Python)

嘿,我来帮你搞定这个XPath提取兄弟元素的问题!你已经用//pre/code拿到了目标元素列表,接下来要提取每个元素前后10个位置内的兄弟,其实用XPath的兄弟轴就能轻松实现,下面给你详细讲怎么操作:

  • 用XPath兄弟轴定位范围兄弟
    XPath里有两个专门定位兄弟元素的轴:preceding-sibling(当前元素之前的兄弟)和following-sibling(当前元素之后的兄弟)。要限制在10个位置内,只需要加上position() <=10的条件就行。

    • 如果要找所有类型的兄弟元素(不管标签是什么),表达式是:
      • 前面10个:./preceding-sibling::*[position() <=10]
      • 后面10个:./following-sibling::*[position() <=10]
    • 如果只想找同标签的code兄弟(和你当前解析的元素类型一致),把*换成code就行:
      • 前面10个:./preceding-sibling::code[position() <=10]
      • 后面10个:./following-sibling::code[position() <=10]
  • 结合Selenium的Python代码示例
    你可以遍历已经拿到的code元素列表,对每个元素用相对XPath来获取它的范围兄弟,代码大概是这样:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    # 初始化浏览器
    driver = webdriver.Chrome()
    driver.get("你的GitHub文档页面URL")
    
    # 获取所有目标<code>元素
    code_elements = driver.find_elements(By.XPATH, "//pre/code")
    
    # 遍历每个元素,提取前后10个兄弟
    for idx, code_elem in enumerate(code_elements):
        # 获取当前元素前10个所有类型的兄弟
        preceding_siblings = code_elem.find_elements(By.XPATH, "./preceding-sibling::*[position() <=10]")
        # 获取当前元素后10个所有类型的兄弟
        following_siblings = code_elem.find_elements(By.XPATH, "./following-sibling::*[position() <=10]")
    
        # 如果你只想找同标签的code兄弟,替换成下面的写法
        # preceding_siblings = code_elem.find_elements(By.XPATH, "./preceding-sibling::code[position() <=10]")
        # following_siblings = code_elem.find_elements(By.XPATH, "./following-sibling::code[position() <=10]")
    
        # 打印结果示例
        print(f"第{idx+1}个code元素:")
        print(f"  前面10个兄弟元素数量:{len(preceding_siblings)}")
        print(f"  后面10个兄弟元素数量:{len(following_siblings)}")
    
    # 关闭浏览器
    driver.quit()
    
  • 小提示
    XPath里的position()是从紧邻当前元素的那个兄弟开始计数的,比如preceding-sibling::*[1]就是当前元素的前一个直接兄弟,<=10刚好覆盖最近的10个,完全符合你要的“10个位置范围内”的需求。

内容的提问来源于stack exchange,提问作者Sean_Boothby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:22:47