Selenium Python如何提取单个HTML元素中的两个字符串?
提取单个HTML元素内两段文本的解决方法
以下是几种可行的Python Selenium解决方案:
通过JavaScript提取文本节点
当text方法无法正确获取多段文本时,用JS直接提取元素下的所有非空文本节点:from selenium.webdriver.common.by import By # 先定位目标元素(替换成你实际的定位器) target_element = driver.find_element(By.CSS_SELECTOR, "div + div[data-id='7789']") # 执行JS获取所有文本节点内容 text_segments = driver.execute_script(""" return Array.from(arguments[0].childNodes) .filter(node => node.nodeType === Node.TEXT_NODE && node.textContent.trim()) .map(node => node.textContent.trim()); """, target_element) # text_segments会是包含两段文本的列表拆分
text返回的完整内容
如果element.text返回的是两段文本的拼接(比如用换行分隔),直接拆分过滤即可:target_element = driver.find_element(By.CSS_SELECTOR, "div + div[data-id='7789']") full_text = target_element.text text_segments = [seg.strip() for seg in full_text.split('\n') if seg.strip()]定位子元素提取(若文本在子标签内)
要是两段文本分别在目标div的子元素中,直接定位子元素获取文本:text_elements = driver.find_elements(By.CSS_SELECTOR, "div + div[data-id='7789'] > *") text_segments = [elem.text.strip() for elem in text_elements if elem.text.strip()]
内容的提问来源于stack exchange,提问作者abizittin
相关产品推荐
相关产品推荐

