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

如何使用Playwright获取所有span标签内的文本内容?

解决Playwright获取所有span标签文本的问题

你原来的代码里有个明显错误:page.get_by_test_id('//span')用错了——get_by_test_id是专门定位带data-testid属性的元素的,不能直接传XPath表达式。要获取页面所有<span>的文本,用Playwright的locator方法结合批量文本获取接口即可,下面是两种实用实现方式:


方法1:直接批量获取所有span文本(简洁高效)

用all_text_contents()方法直接返回所有匹配元素的文本列表,适合只需要文本内容的场景:

from playwright.sync_api import sync_playwright

with sync_playwright() as pw:
    browser = pw.chromium.launch(headless=False)
    context = browser.new_context(viewport={"width": 1920, "height": 1080})
    page = context.new_page()

    url = 'https://announcements.bybit.com/en-US/?category=new_crypto&page=6'
    page.goto(url)
    # 用页面加载完成等待替代固定超时,更可靠
    page.wait_for_load_state("networkidle")

    # 定位所有span标签,获取全部文本内容
    span_texts = page.locator("span").all_text_contents()
    
    # 打印非空文本(过滤布局用的空span)
    for text in span_texts:
        stripped_text = text.strip()
        if stripped_text:
            print(stripped_text)

    context.close()
    browser.close()

方法2:遍历每个span元素(支持额外操作)

如果需要对每个span做额外处理(比如获取属性、判断位置),可以先用all()获取元素句柄列表,再逐个操作:

from playwright.sync_api import sync_playwright

with sync_playwright() as pw:
    browser = pw.chromium.launch(headless=False)
    context = browser.new_context(viewport={"width": 1920, "height": 1080})
    page = context.new_page()

    url = 'https://announcements.bybit.com/en-US/?category=new_crypto&page=6'
    page.goto(url)
    page.wait_for_load_state("networkidle")

    # 获取所有span元素的句柄
    span_elements = page.locator("span").all()
    
    for element in span_elements:
        text = element.inner_text().strip()
        if text:
            print(text)
            # 可添加额外操作,比如获取元素class属性
            # print(element.get_attribute("class"))

    context.close()
    browser.close()

关键注意点

  1. 定位器选择:可以用CSS选择器"span"或者XPath"//span",效果完全一致,选你习惯的即可。
  2. 等待策略:避免用固定的wait_for_timeout,推荐用wait_for_load_state("networkidle")或等待关键元素加载,防止网络延迟导致获取不到内容。
  3. 空文本过滤:页面中很多span是用于布局的空标签,用strip()过滤后输出更实用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 05:25:27