使用Python Selenium无法提取span文本内容的问题咨询
问题分析与解决方法
首先先纠正你代码里的低级错误:innetText是拼写失误,正确的属性名是innerText。
针对你提取span内目标文本的问题,给你几个可行的解决思路:
1. 修正拼写后处理文本
把拼写改对后,用innerText或textContent获取内容,再通过字符串方法去除多余的换行和空格:
# 用innerText提取后清理空白 target_text = my_obj.get_attribute('innerText').strip() # 或者用textContent target_text = my_obj.get_attribute('textContent').strip()
2. 直接通过XPath定位文本节点
既然已经能准确定位到span,不如直接在XPath里指定提取目标文本节点,省掉后续处理步骤:
from selenium.webdriver.common.by import By # 用XPath直接选取span下最后一个文本节点(前面的是SVG后的空白) target_text = driver.find_element(By.XPATH, './div/div/div[2]/div[3]/div/span/text()[last()]').get_attribute('nodeValue').strip()
3. 解析innerHTML提取纯文本
如果愿意引入第三方库,可以用BeautifulSoup解析innerHTML,剥离标签后拿纯文本:
from bs4 import BeautifulSoup html_content = my_obj.get_attribute('innerHTML') soup = BeautifulSoup(html_content, 'html.parser') target_text = soup.get_text().strip()
另外你提到my_obj.text没拿到内容,大概率是文本前后有大量空白字符,试试my_obj.text.strip()说不定就能得到结果——Selenium的text属性会自动过滤不可见文本,但空白字符还是会保留,需要手动清理。
内容的提问来源于stack exchange,提问作者user13137381
相关产品推荐
相关产品推荐

